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

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

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

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

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

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

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

Закрытая тема
 
Опции темы
Старый 26.07.2010, 10:55   #61
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   #62
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

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

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

В проект подключается только один ассемблерный файл?
У IAR видимо как и у GCC есть отдельный чисто сишный стартап. Посмотрите что то типа crt.S
В общем можно поиском по AT91F_LowLevelInit
kison вне форума  
Старый 26.07.2010, 13:57   #65
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   #66
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Помогите начать с ARM7

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

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

больше никаких стартапов нет.
А может у кого есть нормальный startup.s, который содержит в себе необходимые функции?
040301 вне форума  
Старый 26.07.2010, 16:17   #68
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
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   #69
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   #70
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 17:13


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot