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

 
 
> Какие действия происходят в МК до main() ?, Какой язык используется в .xcl файле?
Толик
сообщение Nov 20 2007, 06:55
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687



Хотелось бы вообще разобраться, какие действия происходят в микроконтроллере до того как мы попадаем в main() ?

Зачем нужен .mac файл?

Какой язык используется в .xcl файле?

Где про всё это почитать можно? unsure.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kirill Frolov
сообщение Nov 20 2007, 11:26
Сообщение #2


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

Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241



Цитата(Толик @ Nov 20 2007, 09:55) *
Хотелось бы вообще разобраться, какие действия происходят в микроконтроллере до того как мы попадаем в main() ?


Запускается C-стартап. Который выполняет следующие действия: настройка необходимого минимума аппаратуры, прерываний, стека, возможно включение кварцевого генератора и настройка портов ввода-вывода (многое, конечно, можно вынести в main, но main запускается с большой задержкой).
Потом инициализация C-переменных (глобальных) и вызов конструкторов C++ классов. После всего запускается main.


--------------------
[ZX]
Go to the top of the page
 
+Quote Post
Толик
сообщение Nov 20 2007, 11:53
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687



Цитата(Kirill Frolov @ Nov 20 2007, 14:26) *
Запускается C-стартап. Который выполняет следующие действия:

Дело - то всё в том, что когда мы находимся на первой строчке стартапа, в RAMе у нас уже есть куча наших переменных или функций, которые неизвестно как туда попали....ну в случае работы с отладчиком(или программатором...как он там называется) - ясно, а вот без него....ну то есть при обыной работе.....или после RESETa?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 20 2007, 12:18
Сообщение #4


Шаман
******

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



Цитата(Толик @ Nov 20 2007, 13:53) *
Дело - то всё в том, что когда мы находимся на первой строчке стартапа, в RAMе у нас уже есть куча наших переменных или функций, которые неизвестно как туда попали....ну в случае работы с отладчиком(или программатором...как он там называется) - ясно, а вот без него....ну то есть при обыной работе.....или после RESETa?

Копирование функций, обьявленных как __ramfunc, из flash в RAM тоже происходит в стартапе. Либо они могут загрузиться в RAM из внешней памяти внутренним загрузчиком. Какие у Вас аппаратные особенности (какой МК, как сконфигурирована начальная загрузка и есть ли она вообще) - неизвестно.
Go to the top of the page
 
+Quote Post
Толик
сообщение Nov 20 2007, 12:50
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687



Цитата(IgorKossak @ Nov 20 2007, 15:18) *
Копирование функций, обьявленных как __ramfunc, из flash в RAM тоже происходит в стартапе.


Программирую AT91SAM7A3 (отладочную плату). Так вот взял стандартный проект с бегающими огоньками.....написал у одной функции __ramfunc, затем запустил FLASH Debug.....затем не выполняя программу начинаю смотреть RAM с 0x00200000 и вижу там функцию указанную как __ramfunc, хотя csstartup ещё не выполнялся. crying.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Толик   Какие действия происходят в МК до main() ?   Nov 20 2007, 06:55
- - IgorKossak   Цитата(Толик @ Nov 20 2007, 08:55) Хотело...   Nov 20 2007, 07:20
|- - Толик   Ну вот, в часности, не понятно откуда МК знает дел...   Nov 20 2007, 10:23
|- - IgorKossak   Цитата(Толик @ Nov 20 2007, 12:23) А где...   Nov 20 2007, 10:45
|- - Толик   Спасибо. Цитата(IgorKossak @ Nov 20 2007, 1...   Nov 20 2007, 11:21
- - VladislavS   Цитата(Толик @ Nov 20 2007, 09:55) Зачем ...   Nov 20 2007, 09:56
|- - Сергей Борщ   Цитата(Толик @ Nov 20 2007, 13:53) Дело -...   Nov 20 2007, 12:12
||- - Сергей Борщ   Цитата(Толик @ Nov 20 2007, 14:50) затем ...   Nov 20 2007, 13:53
|- - Kirill Frolov   Цитата(Толик @ Nov 20 2007, 14:53) Дело -...   Nov 20 2007, 14:04
- - vet   Можно предположить, что устройство не выключалось,...   Nov 20 2007, 13:07
|- - Толик   Цитата(vet @ Nov 20 2007, 16:07) Можно пр...   Nov 20 2007, 13:14
- - Толик   И правда..... в стартапе есть код копирующий функц...   Nov 20 2007, 14:25
- - VladislavS   Вижу как приходит понимание. Так держать!   Nov 21 2007, 05:32
- - mdmitry   В документации к WinAVr(gcc) (avr-libc) подробно р...   Nov 21 2007, 07:34
- - Сергей Борщ   Цитата(mdmitry @ Nov 21 2007, 09:34) В до...   Nov 21 2007, 11:27


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 02:45
Рейтинг@Mail.ru


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