Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.07.2010, 10:55
|
#61
|
Временная регистрация
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Помогите начать с ARM7
Основная проблема в том, что не могу проинициализировать глобальную переменную при ее объявлении. Например, пишу в файле (вне функции) следующее:
Код:
|
unsigned int myInt = 99; |
но потом не могу прочитать заданного ей при объявлении значения.
Читал, что инициализацией глобальных переменных в IAR занимается линкер и startup code, которые при старте приложения копируют константу из ROM в объявляемую переменную.
Что должно быть в файлах линкера и startup-кода, чтобы эта процедура проходила нормально?
|
|
|
|
26.07.2010, 12:31
|
#62
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начать с ARM7
Сообщение от 040301
|
Читал, что инициализацией глобальных переменных в IAR занимается линкер и startup code, которые при старте приложения копируют константу из ROM в объявляемую переменную.
Что должно быть в файлах линкера и startup-кода, чтобы эта процедура проходила нормально?
|
Все правильно прочитали. В стартапе уже наверняка все есть, чудес не бывает. Прикрепите свой.
|
|
|
|
26.07.2010, 13:26
|
#63
|
Временная регистрация
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Помогите начать с ARM7
Сообщение от kison
|
В стартапе уже наверняка все есть, чудес не бывает. Прикрепите свой.
|
Вот пожалуйста:
|
|
|
|
26.07.2010, 13:46
|
#64
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начать с ARM7
В проект подключается только один ассемблерный файл?
У IAR видимо как и у GCC есть отдельный чисто сишный стартап. Посмотрите что то типа crt.S
В общем можно поиском по AT91F_LowLevelInit
|
|
|
|
26.07.2010, 13:57
|
#65
|
Временная регистрация
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Помогите начать с ARM7
Есть, конечно, и Сишный файл с функцией AT91F_LowLevelInit(), но в нем никакой инициализации глобальных переменных и близко нет.
Вот он:
|
|
|
|
26.07.2010, 14:03
|
#66
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начать с ARM7
Сообщение от 040301
|
но в нем никакой инициализации глобальных переменных и близко нет.
|
Это я не то скопировал. Надо искать __iar_program_start
Хотя это тоже не оно - эта метка там же. Нужна ?main
Последний раз редактировалось kison; 26.07.2010 в 14:12.
|
|
|
|
26.07.2010, 14:52
|
#67
|
Временная регистрация
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Помогите начать с ARM7
больше никаких стартапов нет.
А может у кого есть нормальный startup.s, который содержит в себе необходимые функции?
|
|
|
|
26.07.2010, 16:17
|
#68
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начать с ARM7
Сообщение от 040301
|
А может у кого есть нормальный startup.s, который содержит в себе необходимые функции?
|
Посмотрел у себя, нашел старенький IAR 4.41EV, поставил, открыл пример и посмотрел стартап. Он совсем не такой как у Вас, и инициализация там есть. У Вас что за версия и откуда стартап?
В том что идет с примером:
Код:
|
;------------------------------------------------------------------------------
; Initialize segments.
;------------------------------------------------------------------------------
; __segment_init is assumed to use
; instruction set and to be reachable by BL from the ICODE segment
; (it is safest to link them in segment ICODE).
;------------------------------------------------------------------------------
EXTERN __segment_init
ldr r0,=__segment_init
mov lr, pc
bx r0 ;- Branch on C function (interworking)
;------------------------------------------------------------------------------
;- Branch on C code Main function (with interworking)
;------------------------------------------------------------------------------
EXTERN main
PUBLIC __main
?jump_to_main:
ldr lr,=?call_exit
ldr r0,=main
__main:
bx r0 ;- Branch on C function (interworking) |
|
|
|
|
26.07.2010, 17:04
|
#69
|
Временная регистрация
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Помогите начать с ARM7
у меня IAR 5.0 Kickstart. Startup оттуда. Но есть и более старые версии. Есть также всякие-разные накачаные отовсюду примеры под IAR. Попробую поиграться с разными startup-файлами (а может и версиями IAR).
О результатах отпишусь.
Спасибо.
|
|
|
|
27.07.2010, 10:17
|
#70
|
Временная регистрация
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Помогите начать с ARM7
Проблема решена. Дело было в моем корявом startup-файле. Вместо перехода на функцию main должен быть переход на ?main. Получается именно эта ?main и вызывает функцию __iar_copy_init2, которая инициализирует глобальные переменные константами, зашитыми в ROM.
В самой IAR EWARM 5.0 startup.s-файл правильный, а почему у меня корявый и где я его взял - за давностью времени уже и не помню.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Soft -> USB -> AVR, помогите начать
|
1baxster |
Микроконтроллеры, АЦП, память и т.д |
8 |
29.07.2009 12:24 |
ARM7
|
Stan88 |
Микроконтроллеры, АЦП, память и т.д |
13 |
11.11.2008 21:42 |
Нада инфа об ARM7 для AT91SAM7хх
|
ua_gruzin |
Микроконтроллеры, АЦП, память и т.д |
14 |
07.06.2008 11:14 |
32/16-битные микроконтроллеры ARM7 фирмы Atmel
|
Kombinator |
Микроконтроллеры, АЦП, память и т.д |
1 |
13.05.2008 16:53 |
GUI для ARM7-9, Infenion16x
|
jjj |
Микроконтроллеры, АЦП, память и т.д |
1 |
10.02.2005 17:13 |
Часовой пояс GMT +4, время: 13:51.
|
|