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

 
 
 
Reply to this topicStart new topic
> IAR Cstartup, Помогите начинающему!
An@BoLiK
сообщение Apr 28 2007, 08:48
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 24-04-07
Из: Харьков
Пользователь №: 27 289



Помогите начинающему!
Столкнулся с такой проблемой: есть исходник мигалки светодиодов, поставлялся с диском платы 91SAM7S64 (плата простенькая), так вот этот пример работает только через отладчик через jtag (RAM-debug),после прошивки через SAB-BA или H-JTAG ничего не работает, а пример с сайта атмел BASIC (тоже работа с портом i\o) работает как через отладчик так и при прошивке через SAM-BA или H-JTAG. различия в этих проектах только то ч то у атмеловского явно переопределен Cstartup файл. Все ли и всегда ли создают свой cstartup файл для реальных проектов? или это не изза него?




(2 примера для сравнения)Прикрепленный файл  AT91SAM7S_BasicTools.rar ( 241.17 килобайт ) Кол-во скачиваний: 182
Прикрепленный файл  Blinking_LED.rar ( 84.13 килобайт ) Кол-во скачиваний: 203
Go to the top of the page
 
+Quote Post
Calculator
сообщение Apr 28 2007, 12:48
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 19-04-07
Пользователь №: 27 172



Цитата(An@BoLiK @ Apr 28 2007, 11:48) *
Все ли и всегда ли создают свой cstartup файл для реальных проектов? или это не изза него?

Вполне может быть именно из-за cstartup и еще из-за .xcl-файла, в котором прописаны адреса RAM и ROM. Свой cstartup создают не все и не всегда, но ИМХО в большинстве случаев. Для начала можно взять этот файл из того примера, который заработал. Но рекомендую с этим файлом разобраться, просмотреть что и как он делает. В этом файле проводится установка стеков всех режимов (в примерах может и не всех), инициализация переменных, вызов подпрограммы начальной инициализации (в ней нужно выполнить то, что необходимо сразу после сброса - выключение watchdog, инициализация портов, переключение на высокую скорость исполнения программы и т.п.)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 29 2007, 12:35
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(An@BoLiK @ Apr 28 2007, 07:48) *
Все ли и всегда ли создают свой cstartup файл для реальных проектов?
Ни в одном из своих проектов не создавал своего cstartup. Потому что если его не подключать специально, то будет подлинкован библиотечный, которого хватает в 99.99% случаев. Поэтому считаю подключение своего cstartup без крайней необходимости вредным - библиотечный на 100% работает а самопальный - потенциальный источник ошибок. Про настройку проекта для работы из RAM/ROM почитайте тут


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 29 2007, 12:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Apr 29 2007, 12:35) *
Ни в одном из своих проектов не создавал своего cstartup.

Ни в одном из своих проектов не использовал стандартный startup smile.gif, но тем не менее Сергей абсолютно прав никаких причин не использовать стандарный для мигалки, нет. Когда почувствуете, что Вам чего-то не хватает - тогда и берете стандартный в качестве отправной точки и вперед.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 29 2007, 19:54
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Так у вас же в проекте вообще startup-а нет, типа IAR сам че хочет подставляет.
Ну ладно можно не изменять, но подключить явно и знать что в нем находится всетаки стоило бы.
А проблема скорее всего, что у вас при старе отладки через wiggler выполняется стартовый макрос, который, естественно, не выпоняется при старте прошитой программы.

Цитата(An@BoLiK @ Apr 28 2007, 09:18) *
Помогите начинающему!
Столкнулся с такой проблемой: есть исходник мигалки светодиодов, поставлялся с диском платы 91SAM7S64 (плата простенькая), так вот этот пример работает только через отладчик через jtag (RAM-debug),после прошивки через SAB-BA или H-JTAG ничего не работает, а пример с сайта атмел BASIC (тоже работа с портом i\o) работает как через отладчик так и при прошивке через SAM-BA или H-JTAG. различия в этих проектах только то ч то у атмеловского явно переопределен Cstartup файл. Все ли и всегда ли создают свой cstartup файл для реальных проектов? или это не изза него?
(2 примера для сравнения)Прикрепленный файл  AT91SAM7S_BasicTools.rar ( 241.17 килобайт ) Кол-во скачиваний: 182
Прикрепленный файл  Blinking_LED.rar ( 84.13 килобайт ) Кол-во скачиваний: 203
Go to the top of the page
 
+Quote Post
An@BoLiK
сообщение Apr 29 2007, 20:03
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 24-04-07
Из: Харьков
Пользователь №: 27 289



так и не разобрался, может кто нибудь скинуть простенький работающий проект который работает после прошивки (без startup'a).
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 29 2007, 20:53
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(An@BoLiK @ Apr 29 2007, 20:03) *
так и не разобрался, может кто нибудь скинуть простенький работающий проект который работает после прошивки (без startup'a).
http://sourceforge.net/project/showfiles.php?group_id=181958 возьмите там файл scmRTOS.3-00.arm7.AT91SAM7.IAR_4-30.zip В нем проекты, которые работают как из RAM так и из флеш. Проекты проверены, работают. Возможно придется изменить тип отладчика (там стоит j-link).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
An@BoLiK
сообщение Apr 29 2007, 21:21
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 24-04-07
Из: Харьков
Пользователь №: 27 289



Цитата(Сергей Борщ @ Apr 29 2007, 21:53) *
http://sourceforge.net/project/showfiles.php?group_id=181958 возьмите там файл scmRTOS.3-00.arm7.AT91SAM7.IAR_4-30.zip В нем проекты, которые работают как из RAM так и из флеш. Проекты проверены, работают. Возможно придется изменить тип отладчика (там стоит j-link).


smile.gif да но это несовсем простенький проект, (до ОС мне еще как до Киева.....)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 29 2007, 22:30
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(An@BoLiK @ Apr 29 2007, 21:21) *
smile.gif да но это несовсем простенький проект, (до ОС мне еще как до Киева.....)
Выкиньте все файлы исходников кроме main.cpp, в нем оставьте main() и __low_level_init() - получите заготовку для любого проекта.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 19 2007, 13:49
Сообщение #10


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(An@BoLiK @ Apr 30 2007, 00:21) *
...до ОС мне еще как до Киева...

А это не так далеко как Вам кажется.
В обоих случаях.
Было бы терпение прочесть описание.
Go to the top of the page
 
+Quote Post
XsanyaX
сообщение May 22 2007, 13:44
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 7-04-05
Из: Украина
Пользователь №: 3 948



Цитата(An@BoLiK @ Apr 28 2007, 11:48) *
Помогите начинающему!
Столкнулся с такой проблемой: есть исходник мигалки светодиодов, поставлялся с диском платы 91SAM7S64 (плата простенькая), так вот этот пример работает только через отладчик через jtag (RAM-debug),после прошивки через SAB-BA или H-JTAG ничего не работает, а пример с сайта атмел BASIC (тоже работа с портом i\o) работает как через отладчик так и при прошивке через SAM-BA или H-JTAG. различия в этих проектах только то ч то у атмеловского явно переопределен Cstartup файл. Все ли и всегда ли создают свой cstartup файл для реальных проектов? или это не изза него?
(2 примера для сравнения)Прикрепленный файл  AT91SAM7S_BasicTools.rar ( 241.17 килобайт ) Кол-во скачиваний: 182
Прикрепленный файл  Blinking_LED.rar ( 84.13 килобайт ) Кол-во скачиваний: 203


Похоже, это пример для платы SAM-P64 от Olimex.... С этим примером у меня тоже были проблемы....
Также работал из RAM, но нивкакую из флешь....
Помогло добавление функцию InitFrec() 1 такта задержки для флешь

AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS ;

и заменой в этой же функции строк:

pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | AT91C_PMC_PRES_CLK_2 ;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));

на строки

pPMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2 ;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));

pPMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));

Сообщение отредактировал XsanyaX - May 22 2007, 14:41


--------------------
Метрология - наука о достаточной точности.
Go to the top of the page
 
+Quote Post

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

 


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


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