|
Возврат из функции в gcc., не возвращается=( |
|
|
|
Jun 28 2006, 07:44
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 15-05-05
Пользователь №: 5 060

|
Fuse bit поставил равным единице. Не заработало=(. Код Sections: Idx Name Size VMA LMA File off Algn 0 .data 00000000 00800100 000008ea 0000097e 2**0 CONTENTS, ALLOC, LOAD, DATA 1 .text 000008ea 00000000 00000000 00000094 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .bss 00000106 00800100 00800100 0000097e 2**0 ALLOC 3 .noinit 00000000 00800206 00800206 0000097e 2**0 CONTENTS 4 .eeprom 00000000 00810000 00810000 0000097e 2**0 CONTENTS 5 .stab 00000408 00000000 00000000 00000980 2**2 CONTENTS, READONLY, DEBUGGING 6 .stabstr 00000084 00000000 00000000 00000d88 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_aranges 0000008c 00000000 00000000 00000e0c 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_pubnames 0000019f 00000000 00000000 00000e98 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_info 00000ec0 00000000 00000000 00001037 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_abbrev 000004b9 00000000 00000000 00001ef7 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_line 00000c78 00000000 00000000 000023b0 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_str 000003cd 00000000 00000000 00003028 2**0 CONTENTS, READONLY, DEBUGGING вот что выводит objdump.
Сообщение отредактировал osminog - Jun 28 2006, 07:46
|
|
|
|
|
Jun 28 2006, 11:35
|
Участник

Группа: Новичок
Сообщений: 34
Регистрация: 2-10-05
Пользователь №: 9 141

|
Цитата void basicRfInit(BASIC_RF_RX_INFO *pRRI, UINT8 channel, WORD panId, WORD myAddr) А gcc умеет передавать 4 параметра? В ИАРе насколько я помню максимально можно было передать 3 параметра.
|
|
|
|
|
Jun 28 2006, 12:23
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Igor_U @ Jun 28 2006, 14:35)  Цитата void basicRfInit(BASIC_RF_RX_INFO *pRRI, UINT8 channel, WORD panId, WORD myAddr)
А gcc умеет передавать 4 параметра? В ИАРе насколько я помню максимально можно было передать 3 параметра. С чего Вы это взяли? Только через регистры можно передать до 8 параметров, а про стек я уже не говорю.
|
|
|
|
|
Jun 29 2006, 07:21
|

Местами Гуру
    
Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323

|
Цитата(vet @ Jun 28 2006, 09:48)  AVR в принципе не умеет выполнять код из ОЗУ. osminog, снятие fuse-бита совместимости с мегой103, скорее всего, поможет. А какая ему разница, program memory выбирается по адресам, которые для данного случая не перекрываются, просто нужно сделать alloc нужной text section во внешнее озу, загрузчик при ресете его туды перенесет. В большинстве случаев это не имеет смысла - этот же код будет хранится и во флеше, но для оверлеев, которые хранятся где-то на SD/MMC можно применить. Цитата(Igor_U @ Jun 28 2006, 14:35)  Цитата void basicRfInit(BASIC_RF_RX_INFO *pRRI, UINT8 channel, WORD panId, WORD myAddr)
А gcc умеет передавать 4 параметра? В ИАРе насколько я помню максимально можно было передать 3 параметра. Да хоть 404.
|
|
|
|
|
Jun 29 2006, 07:34
|

Местами Гуру
    
Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323

|
Цитата(osminog @ Jun 28 2006, 10:44)  Fuse bit поставил равным единице. Не заработало=(. Код Sections: Idx Name Size VMA LMA File off Algn 0 .data 00000000 00800100 000008ea 0000097e 2**0 CONTENTS, ALLOC, LOAD, DATA 1 .text 000008ea 00000000 00000000 00000094 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .bss 00000106 00800100 00800100 0000097e 2**0 ALLOC 3 .noinit 00000000 00800206 00800206 0000097e 2**0 CONTENTS 4 .eeprom 00000000 00810000 00810000 0000097e 2**0 CONTENTS 5 .stab 00000408 00000000 00000000 00000980 2**2 CONTENTS, READONLY, DEBUGGING 6 .stabstr 00000084 00000000 00000000 00000d88 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_aranges 0000008c 00000000 00000000 00000e0c 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_pubnames 0000019f 00000000 00000000 00000e98 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_info 00000ec0 00000000 00000000 00001037 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_abbrev 000004b9 00000000 00000000 00001ef7 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_line 00000c78 00000000 00000000 000023b0 2**0 CONTENTS, READONLY, DEBUGGING 12 .debug_str 000003cd 00000000 00000000 00003028 2**0 CONTENTS, READONLY, DEBUGGING вот что выводит objdump. Побробуйте добавить к опциям линкера что-то типа -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|