Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Помогите начать с ARM7

Непрочитано 26.07.2010, 10:55  
040301
Временная регистрация
 
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
040301 на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

Основная проблема в том, что не могу проинициализировать глобальную переменную при ее объявлении. Например, пишу в файле (вне функции) следующее:
Код:
unsigned int myInt = 99;
но потом не могу прочитать заданного ей при объявлении значения.
Читал, что инициализацией глобальных переменных в IAR занимается линкер и startup code, которые при старте приложения копируют константу из ROM в объявляемую переменную.
Что должно быть в файлах линкера и startup-кода, чтобы эта процедура проходила нормально?
Реклама:
040301 вне форума  
Непрочитано 26.07.2010, 12:31  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

Сообщение от 040301 Посмотреть сообщение
Читал, что инициализацией глобальных переменных в IAR занимается линкер и startup code, которые при старте приложения копируют константу из ROM в объявляемую переменную.
Что должно быть в файлах линкера и startup-кода, чтобы эта процедура проходила нормально?
Все правильно прочитали. В стартапе уже наверняка все есть, чудес не бывает. Прикрепите свой.
kison вне форума  
Непрочитано 26.07.2010, 13:26  
040301
Временная регистрация
 
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
040301 на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

Сообщение от kison Посмотреть сообщение
В стартапе уже наверняка все есть, чудес не бывает. Прикрепите свой.
Вот пожалуйста:
Вложения:
Тип файла: zip cstartup.zip (1.8 Кб, 47 просмотров)
040301 вне форума  
Непрочитано 26.07.2010, 13:46  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

В проект подключается только один ассемблерный файл?
У IAR видимо как и у GCC есть отдельный чисто сишный стартап. Посмотрите что то типа crt.S
В общем можно поиском по AT91F_LowLevelInit
kison вне форума  
Непрочитано 26.07.2010, 13:57  
040301
Временная регистрация
 
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
040301 на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

Есть, конечно, и Сишный файл с функцией AT91F_LowLevelInit(), но в нем никакой инициализации глобальных переменных и близко нет.
Вот он:
Вложения:
Тип файла: zip Cstartup_SAM7.zip (1.6 Кб, 41 просмотров)
040301 вне форума  
Непрочитано 26.07.2010, 14:03  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

Сообщение от 040301 Посмотреть сообщение
но в нем никакой инициализации глобальных переменных и близко нет.
Это я не то скопировал. Надо искать __iar_program_start
Хотя это тоже не оно - эта метка там же. Нужна ?main

Последний раз редактировалось kison; 26.07.2010 в 14:12.
kison вне форума  
Непрочитано 26.07.2010, 14:52  
040301
Временная регистрация
 
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
040301 на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

больше никаких стартапов нет.
А может у кого есть нормальный startup.s, который содержит в себе необходимые функции?
040301 вне форума  
Непрочитано 26.07.2010, 16:17  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию 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)
kison вне форума  
Сказали "Спасибо" kison
040301 (27.07.2010)
Непрочитано 26.07.2010, 17:04  
040301
Временная регистрация
 
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
040301 на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

у меня IAR 5.0 Kickstart. Startup оттуда. Но есть и более старые версии. Есть также всякие-разные накачаные отовсюду примеры под IAR. Попробую поиграться с разными startup-файлами (а может и версиями IAR).
О результатах отпишусь.
Спасибо.
040301 вне форума  
Непрочитано 27.07.2010, 10:17  
040301
Временная регистрация
 
Регистрация: 05.11.2008
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
040301 на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

Проблема решена. Дело было в моем корявом startup-файле. Вместо перехода на функцию main должен быть переход на ?main. Получается именно эта ?main и вызывает функцию __iar_copy_init2, которая инициализирует глобальные переменные константами, зашитыми в ROM.
В самой IAR EWARM 5.0 startup.s-файл правильный, а почему у меня корявый и где я его взял - за давностью времени уже и не помню.
040301 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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 16:13


Часовой пояс GMT +4, время: 01:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.