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

 
 
> Порт для Atmel ARM (IAR), Зачем нужно переопределять __low_level_init()?
gladov
сообщение Feb 25 2009, 07:16
Сообщение #1


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Принимайте в свои ряды smile.gif
Почитал про scmRTOS и она мне очень понравилась, начал изучать. Раньше сидел на uCos, но она достаточно монстрообразная, да и С++ хочется, ибо на нем есть уже куча своих библиотек.
В принципе, оно завелось и заработало, только не понятно, зачем нужно выносить инициализацию PLL, системного таймера и проч. в __low_level_init()? Там же имхо нет ничего критичного, что надо было бы обязательно выполнить до инициализации аппаратных стеков и переменных? Для пробы перенес весь код из __low_level_init() в обычную функцию main(), в самое начало. А именно, PLL, прерывания вообще (это уже свое собственное), системный таймер, прерывание смены контекста. Все работает нормально. Где скрытый смысл "влезать" в процесс инициализации камня?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Mar 1 2009, 05:30
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



А ещё можно разместить переменные во внешней динамической памяти. Но при старте процессора контроллер DRAM ещё не работает поэтому иинициализация/обнуление переменных не сработает. Чтобы всё было пучком нужно в __low_level_init разместить инициализацию контроллера DRAM.

Ещё одно заманчивое предложение - разместить в DRAM стеки. Но с этим нужно осторожно. Текущий стек процедуры __low_level_init (стек System) может и не удастся там разместить (хотя если процедуру писать на асме, то можно рискнуть), а вот другие стеки вполне можно в DRAMе держать. Только с разрешением прерываний в __low_level_init поосторожней до инициализации DRAM.

Сообщение отредактировал GetSmart - Mar 1 2009, 06:19


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post



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

 


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


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