|
|
 |
Ответов
|
Sep 15 2009, 05:09
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
С 4.30 на 5.хх переводится по EWARM_MigrationGuide.pdf В os_cpu_a.asm нужно сделать что-то наподобие: Код PUBLIC OS_CPU_ARM_ExceptIrqHndlr PUBLIC IRQ_Handler
...
OS_CPU_ARM_ExceptIrqHndlr IRQ_Handler SUB LR, LR, #4 ; LR offset to return from this exception: -4. STMFD SP!, {R0-R3} ; Push working registers. то есть объявить альтернативные имена меток, совпадающие с зарезервированными именами функций прерывания в IAR 5.xx. Больше в asm делать ничего не нужно. Дальше делаете icf файл - но это как везде, никакой специфики относительно UCOS.
--------------------
Пасу котов...
|
|
|
|
|
Sep 16 2009, 18:24
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 11-10-06
Пользователь №: 21 214

|
Цитата(Andy Mozzhevilov @ Sep 15 2009, 11:09)  В os_cpu_a.asm нужно сделать что-то наподобие: [code] PUBLIC OS_CPU_ARM_ExceptIrqHndlr PUBLIC IRQ_Handler Ну я в стартапе указал вместо обычных хэндлеров OS_CPU_ARM_xxx. Но в целом непонятно, зачем оно нужно...
|
|
|
|
|
Sep 17 2009, 04:49
|
Знающий
   
Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163

|
Цитата(Andy Mozzhevilov @ Sep 17 2009, 10:01)  Нужно что? Зачем оси нужно знать про эти прерывания. Ладно, для IRQ и FIQ ещё есть смысл, а вот в чём смысл остальных векторов неясно. Ещё такой вопрос: если бутлоадер установил вектора прерываний и настроил стеки, а потом загрузил основной код с адреса 0x20000000, в котором мы и хотим использовать ось, то будут ли обновлены вектора прерываний по данным из основного кода или останутся нетронутыми?
|
|
|
|
|
Sep 17 2009, 06:31
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(andrewlekar @ Sep 17 2009, 08:49)  Зачем оси нужно знать про эти прерывания. Ладно, для IRQ и FIQ ещё есть смысл, а вот в чём смысл остальных векторов неясно. А я не заморачиваюсь с остальными, у меня в ось идет только IRQ. FIQ обрабатываю вне оси (если оно мне нужно). А на оставшиеся вектора ставлю заглушки while (1); Если перенаправить в ось, то при отладке только мешает. Цитата Ещё такой вопрос: если бутлоадер установил вектора прерываний и настроил стеки, а потом загрузил основной код с адреса 0x20000000, в котором мы и хотим использовать ось, то будут ли обновлены вектора прерываний по данным из основного кода или останутся нетронутыми? На этот вопрос не отвечу. Нужно смотреть документацию, как вектора ремапятся. С Атмелом не работал, у NXP младшие на 64 байта flash мапятся 64 байта из ОЗУ с адреса 0x4000 0000
--------------------
Пасу котов...
|
|
|
|
Сообщений в этой теме
Andrew Lekar IAR 5.30 ARM Sep 14 2009, 19:00     andrewlekar Цитата(Andy Mozzhevilov @ Sep 17 2009, 12... Sep 17 2009, 08:37 Andy Mozzhevilov Прерывания должны сначала попадать в ось на OS_CPU... Sep 17 2009, 09:41 andrewlekar Ладно, положусь на создателей порта, которые обраб... Sep 17 2009, 10:25 Andy Mozzhevilov Цитата(andrewlekar @ Sep 17 2009, 14:25) ... Sep 17 2009, 10:37  zltigo Цитата(Andy Mozzhevilov @ Sep 17 2009, 12... Sep 17 2009, 10:53   Andy Mozzhevilov Цитата(zltigo @ Sep 17 2009, 14:53) В бол... Sep 17 2009, 14:52    zltigo Цитата(Andy Mozzhevilov @ Sep 17 2009, 16... Sep 17 2009, 16:10     solosh Цитата(zltigo @ Sep 17 2009, 19:10) Для б... Sep 17 2009, 17:11     Andy Mozzhevilov Цитата(zltigo @ Sep 17 2009, 20:10) Если ... Sep 19 2009, 05:18      zltigo Цитата(Andy Mozzhevilov @ Sep 19 2009, 07... Sep 19 2009, 08:15       Andy Mozzhevilov Цитата(zltigo @ Sep 19 2009, 12:15) Посме... Sep 21 2009, 10:08    HARMHARM Цитата(Andy Mozzhevilov @ Sep 17 2009, 17... Sep 17 2009, 17:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|