04.08.2010, 09:03
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от kison
|
Можно.
|
Блин, я теперь окончательно запутался . Вы можете привести мне пример СИшного кода организации прерывания FIQ через VIC? Как я понимаю, тогда через вектор FIQ в стартапе тоже нужно перепрыгивать на VIC?
Сообщение от kison
|
ну и оно может прерывать обычные прерывания
|
Вложенные прерывания без спец мер обрабатываются нормально?
|
|
|
|
04.08.2010, 12:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от uk8amk
|
Как я понимаю, тогда через вектор FIQ в стартапе тоже нужно перепрыгивать на VIC?
|
Да, и поэтому пример получится не на С. У меня готового примера нет, потому как обработчик FIQ если есть, то один. Я просто не читаю вектор из VIC, а перехожу к нему сразу.
Сообщение от uk8amk
|
Вложенные прерывания без спец мер обрабатываются нормально?
|
Это не вложенные когда FIQ прерывает IRQ.
Вспомнил тут, что использовал однажды два FIQ, по очереди правда. Посмотрел и.. все что я выше написал про связку VIC-FIQ - чепуха Уже забыл просто. Не работает VIC с быстрыми прерываниями, максимум запрос предоставляет. А если нужны разные обработчики- внутри обработчика переходите по указателю на нужную функцию. У меня именно так было сделано.
Но все равно каналов 32 - 16 векторных и 16 невекторных. Любой из них или несколько сразу могут быть быстрым прерыванием. Вот только если их несколько то придется источник проверять руками, так же как и в случае с невекторными.
Последний раз редактировалось kison; 04.08.2010 в 13:34.
|
|
|
|
04.08.2010, 13:31
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от kison
|
поэтому пример получится не на С.
|
Буду благодарен и за асмовый код
|
|
|
|
05.08.2010, 09:12
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от kison
|
максимум запрос предоставляет.
|
Т.е. все равно надо сделать так:
LDR PC,cstart_addr ; reset
SUB PC,PC,#8 ; undefined instruction
SUB PC,PC,#8 ; software interrupt
SUB PC,PC,#8 ; prefetch data abort
SUB PC,PC,#8 ; data abort
SUB PC,PC,#8 ; not used
LDR PC,IRQ_Handler_addr ; IRQ или LDR PC,[PC,#-0xFF0] - переход на ВИК
LDR PC,FIQ_Handler_addr ; FIQ
?
|
|
|
|
09.08.2010, 19:45
|
|
Частый гость
Регистрация: 09.11.2009
Сообщений: 17
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Здравствуй, ARM. Запуск "на коленке"
Привет, скачал пример с начала этой ветки:
Код:
|
#include ‹LPC23xx.H›
#define GPIOM 0x00000001
/* Задержка около 300 мс */
void wait()
{
int d;
for (d = 0; d ‹ 1000000; d++)
{
}
}
int main()
{
/* Выключение режима совместимости с LPC21XX */
SCS |= GPIOM;
/* Установка направления порта. P1[0] - выход */
FIO1DIR = 0x00000001;
for (;;) /* Бесконечный цикл */
{
/* Сброс P1[0]. На выходе лог. 0 */
FIO1CLR = 0x00000001;
/* Пауза */
wait();
/* Установка P1[0]. На выходе лог. 1 */
FIO1SET = 0x00000001;
/* Пауза */
wait();
}
} |
Keil выдает 2 ошибки:
Build target 'Target 1'
compiling Tmp.c...
Tmp.c(34): warning: #1-D: last line of file ends without a newline
Tmp.c: }
Tmp.c: ^
Tmp.c: Tmp.c: 1 warning, 0 errors
linking...
Tmp.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
Tmp.sct: Not enough information to list image symbols.
Tmp.sct: Not enough information to list the image map.
Tmp.sct: Finished: 2 information, 0 warning and 1 error messages.
"Tmp.axf" - 1 Error(s), 1 Warning(s).
Как с этим бороться? Помогите начинающему, please.
|
|
|
|
09.08.2010, 20:13
|
|
Частый гость
Регистрация: 09.11.2009
Сообщений: 17
Сказал спасибо: 4
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Здравствуй, ARM. Запуск "на коленке"
Sorry, поборол сам:
добавил файл startup.s и установил курсор на конец текста
своей проги.
Где бы почитать как с Кейлом работать?
|
|
|
|
10.08.2010, 00:15
|
|
Частый гость
Регистрация: 01.11.2009
Сообщений: 29
Сказал спасибо: 2
Сказали Спасибо 13 раз(а) в 7 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от George22
|
Sorry, поборол сам:
добавил файл startup.s и установил курсор на конец текста
своей проги.
Где бы почитать как с Кейлом работать?
|
Вообще у него есть вполне приличный HELP с кучей картинок. В частности как создавать проекты.
|
|
|
|
12.08.2010, 15:01
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Тема очень актуальна!Спасибо автору. Рекомендую всем интересующимся книжуху "Микроконтроллеры ARM7 семейств LPC2300/2400. Вводный курс разработчика" Тревор Мартин. Пер. с английского А.В. Евстифеева. Очень толковая книжка для перехода с 8биток на ARM для тех, кто уже иеет опыт работы с различными МК.
http://ykbook.ru/goods.php?id=12975
Книга,кстати, с примерами
__________________
То, что нас не убивает - делает нас сильнее
|
|
|
|
15.08.2010, 09:58
|
|
Частый гость
Регистрация: 15.04.2007
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Здравствуй, ARM. Запуск "на коленке"
где продолжение?
может cortex-m3 заковыряете, гарвард все же ближе
|
|
|
|
16.08.2010, 07:26
|
|
Прописка
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
"может cortex-m3 заковыряете"
Что там ковырять? все просто.
Я пока потестил USB, UART, Ehternet (простой web сервак ).
Приятно писать, на первый старт ушло пару часов, благодоря Cortex Microcontroller Software Interface Standard (CMSIS).
хорошо документированно, масса примеров.
рекомендую. Сейчас заказал LPC1114.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:24.
|
|