7
7
#define PAGE_ALIGN (x ) (((x) + PAGE_SIZE - 1) & -PAGE_SIZE)
8
8
9
9
enum {
10
- ADDR__init__ ,
11
- ADDR_test_func ,
12
- ADDR_test_1 ,
13
- ADDR_main ,
14
- ADDR_abort ,
15
- ADDR_exit ,
16
- ADDR__stop_program ,
17
- ADDR__data__ ,
10
+ ADDR__init__ = 0x0000 , // __init__
11
+ ADDR_test_func = 0x001a , // test_func()
12
+ ADDR_test_1 = 0x0030 , // test_1()
13
+ ADDR_main = 0x0058 , // main()
14
+ ADDR_abort = 0x0062 , // abort()
15
+ ADDR_exit = 0x006c , // _exit()
16
+ ADDR__stop_program = 0x006e , // __stop_program()
17
+ ADDR__data__ = 0x0070 , // __data__
18
+ ADDR__data__end = 0x0072 ,
18
19
};
19
20
20
- static const uint16_t ADDR [] = {
21
- 0x0000 , // __init__
22
- 0x001a , // test_func()
23
- 0x0030 , // test_1()
24
- 0x0058 , // main()
25
- 0x0062 , // abort()
26
- 0x006c , // _exit()
27
- 0x006e , // __stop_program()
28
- 0x0070 , // __data__
29
- 0x0072 , // __size__
21
+ enum {
22
+ SIZE__init__ = ADDR_test_func - ADDR__init__ ,
23
+ SIZE_test_func = ADDR_test_1 - ADDR_test_func ,
24
+ SIZE_test_1 = ADDR_main - ADDR_test_1 ,
25
+ SIZE_main = ADDR_abort - ADDR_main ,
26
+ SIZE_abort = ADDR_exit - ADDR_abort ,
27
+ SIZE_exit = ADDR__stop_program - ADDR_exit ,
28
+ SIZE__stop_program = ADDR__data__ - ADDR__stop_program ,
29
+ SIZE__data__ = ADDR__data__end - ADDR__data__ ,
30
30
};
31
31
32
32
static const uint8_t FLASH [] =
@@ -128,7 +128,7 @@ static void test_avr_basic_alu(void)
128
128
OK (uc_reg_write (uc , UC_AVR_REG_R24W , & r_func_arg0 ));
129
129
OK (uc_reg_write (uc , UC_AVR_REG_R22W , & r_func_arg1 ));
130
130
131
- const uint64_t code_start = ADDR [ ADDR_test_func ] + 8 ;
131
+ const uint64_t code_start = ADDR_test_func + 8 ;
132
132
OK (uc_emu_start (uc , code_start , code_start + 4 , 0 , 0 ));
133
133
134
134
OK (uc_reg_read (uc , UC_AVR_REG_PC , & r_pc ));
@@ -186,10 +186,8 @@ static void test_avr_basic_mem(void)
186
186
uc_hook eventmem_hook ;
187
187
MEM_HOOK_RESULTS eventmem_trace = {0 };
188
188
189
- const uint16_t DATA_BASE = ADDR [ADDR__data__ ];
190
- const uint16_t DATA_SIZE = ADDR [ADDR__data__ + 1 ] - DATA_BASE ;
191
- const uint8_t * const DATA = & FLASH [ADDR [ADDR__data__ ]];
192
- uint8_t mem [DATA_SIZE ];
189
+ const uint8_t * const DATA = & FLASH [ADDR__data__ ];
190
+ uint8_t mem [SIZE__data__ ];
193
191
194
192
uint32_t r_pc ;
195
193
int i ;
@@ -198,21 +196,21 @@ static void test_avr_basic_mem(void)
198
196
OK (uc_hook_add (uc , & eventmem_hook , UC_HOOK_MEM_VALID ,
199
197
test_avr_basic_mem_cb_eventmem , & eventmem_trace , 1 , 0 ));
200
198
201
- const uint64_t code_start = ADDR [ ADDR__init__ ] ;
202
- OK (uc_emu_start (uc , code_start , ADDR [ ADDR__init__ + 1 ] , 0 , 0 ));
199
+ const uint64_t code_start = ADDR__init__ ;
200
+ OK (uc_emu_start (uc , code_start , ADDR__init__ + SIZE__init__ , 0 , 0 ));
203
201
204
202
OK (uc_reg_read (uc , UC_AVR_REG_PC , & r_pc ));
205
- TEST_CHECK (r_pc == ADDR [ ADDR__init__ + 1 ] );
203
+ TEST_CHECK (r_pc == ADDR__init__ + SIZE__init__ );
206
204
207
205
// Check SRAM was correctly initialized with data from Flash program memory
208
206
OK (uc_mem_read (uc , MEM_BASE , mem , sizeof (mem )));
209
- TEST_CHECK (memcmp (mem , DATA , DATA_SIZE ) == 0 );
207
+ TEST_CHECK (memcmp (mem , DATA , SIZE__data__ ) == 0 );
210
208
211
- TEST_CHECK (eventmem_trace .count == 2 * DATA_SIZE );
212
- for (i = 0 ; i < DATA_SIZE ; i ++ ) {
209
+ TEST_CHECK (eventmem_trace .count == 2 * SIZE__data__ );
210
+ for (i = 0 ; i < SIZE__data__ ; i ++ ) {
213
211
const MEM_HOOK_RESULT * const mr = & eventmem_trace .results [2 * i ];
214
212
TEST_CHECK (mr -> type == UC_MEM_READ );
215
- TEST_CHECK (mr -> address == (UC_AVR_MEM_FLASH |(DATA_BASE + i )));
213
+ TEST_CHECK (mr -> address == (UC_AVR_MEM_FLASH |(ADDR__data__ + i )));
216
214
TEST_CHECK (mr -> size == 1 );
217
215
TEST_CHECK (mr -> value == 0 );
218
216
@@ -236,23 +234,23 @@ static void test_avr_full_exec(void)
236
234
237
235
uc_common_setup (& uc , 0 , FLASH , FLASH_SIZE );
238
236
239
- const uint64_t code_start = ADDR [ ADDR__init__ ] ;
240
- OK (uc_emu_start (uc , code_start , ADDR [ ADDR__init__ + 1 ] , 0 , 0 ));
237
+ const uint64_t code_start = ADDR__init__ ;
238
+ OK (uc_emu_start (uc , code_start , ADDR__init__ + SIZE__init__ , 0 , 0 ));
241
239
242
240
OK (uc_reg_read (uc , UC_AVR_REG_PC , & r_pc ));
243
- TEST_CHECK (r_pc == ADDR [ ADDR__init__ + 1 ] );
241
+ TEST_CHECK (r_pc == ADDR__init__ + SIZE__init__ );
244
242
245
243
r_sp = MEM_BASE + MEM_SIZE - 1 ;
246
244
OK (uc_reg_write (uc , UC_AVR_REG_SP , & r_sp ));
247
245
248
246
const uint64_t exits [] = {
249
- ADDR [ ADDR_main ] ,
250
- ADDR [ ADDR__stop_program ]
247
+ ADDR_main ,
248
+ ADDR__stop_program
251
249
};
252
250
OK (uc_ctl_exits_enable (uc ));
253
251
OK (uc_ctl_set_exits (uc , exits , ARRAY_ELEMS (exits )));
254
252
255
- const uint64_t code_main = ADDR [ ADDR_main ] ;
253
+ const uint64_t code_main = ADDR_main ;
256
254
OK (uc_emu_start (uc , code_main , 0 , 0 , 0 ));
257
255
258
256
OK (uc_reg_read (uc , UC_AVR_REG_R25 , & r [25 ]));
0 commit comments