реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Возврат из функции в gcc., не возвращается=(
osminog
сообщение Jun 28 2006, 07:44
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
Igor_U
сообщение Jun 28 2006, 11:35
Сообщение #17


Участник
*

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



Цитата
void basicRfInit(BASIC_RF_RX_INFO *pRRI, UINT8 channel, WORD panId, WORD myAddr)


А gcc умеет передавать 4 параметра? В ИАРе насколько я помню максимально можно было передать 3 параметра.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jun 28 2006, 12:23
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 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 параметров, а про стек я уже не говорю.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jun 29 2006, 07:21
Сообщение #19


Местами Гуру
*****

Группа: 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.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Jun 29 2006, 07:34
Сообщение #20


Местами Гуру
*****

Группа: 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
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 10:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.02091 секунд с 7
ELECTRONIX ©2004-2016