|
LPC2478 FreeRTOS port никто не видел/делал? |
|
|
|
 |
Ответов
|
Dec 16 2008, 14:56
|

Местный
  
Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484

|
Цитата(sergik_vrn @ Dec 16 2008, 18:48)  Перешел на новый проц (с STR710 на LPC2478), компиляю проект под IAR, FreeRTOS порт втупую не собирается, судя по всему, изменились регистры, и прилично изменились (для иар порт называется LPC2000, судя по хидерам он даже для LPC23хх не сгодится). Прежде чем самому разбираться, хотелось бы узнать, может не стоит изобретать велосипед? Какая разница? Ядро то же самое - ARM7TDMI-S, придется поменять настройку контроллера прерываний и таймера. И только. Я так с 2146 на 2366 "перешел".
|
|
|
|
|
Dec 16 2008, 21:33
|

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

|
Цитата(meister @ Dec 16 2008, 17:56)  Какая разница? Ядро то же самое - ARM7TDMI-S, придется поменять настройку контроллера прерываний и таймера. И только. Я так с 2146 на 2366 "перешел". логика понятна, но у каждого процессора своя небольшая специфика. просто не очень хочется терять время на разбирательство сперва со "старым" контроллером прерываний, потом с новым - хотелось срубить "по-легкому"  не получится, значит не судьба
|
|
|
|
|
Dec 16 2008, 22:19
|

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

|
Цитата(sergik_vrn @ Dec 17 2008, 00:33)  просто не очень хочется терять время на разбирательство сперва со "старым" контроллером прерываний, потом с новым Вот в первом приближении, достаточном для большинства случаев, разница: Код int install_irq( uint inum, void *handler, uint priority, int irq_enable ) { if( ( inum >= 32 )||( (priority ) >= VIC_SIZE ) ) return( -1 );
VICIntEnClear = (1<<inum); // Disable Interrupt VICIntSelect &= (~(1<<inum)); // Classifies as IRQ #if defined LPC2400 *(ulong *)(&VICVectAddr0 + inum) = (ulong)handler; // Set Handler *(ulong *)(&VICVectPriority0 + inum) = priority; #else *(ulong *)(&VICVectAddr0 + priority ) = (ulong)handler; *(ulong *)(&VICVectCntl0 + priority ) = ( 0x20 | inum ); // Enable vector interrupt #endif if( irq_enable ) VICIntEnable = (1<<inum); // Enable Interrupt return( 0 ); }
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 17 2008, 06:23
|

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

|
Цитата(zltigo @ Dec 17 2008, 01:19)  Вот в первом приближении, достаточном для большинства случаев, разница: еще раз большое спасибо!
|
|
|
|
Сообщений в этой теме
sergik_vrn LPC2478 FreeRTOS port никто не видел/делал? Dec 16 2008, 14:48 sergik_vrn вдогонку. кстати, о птичках. разобрался с векторам... Dec 17 2008, 10:49 aaarrr Запускать просто нужно из режима SVC, а не SYS/USE... Dec 17 2008, 10:55 sergik_vrn Цитата(aaarrr @ Dec 17 2008, 13:55) Запус... Dec 17 2008, 11:55 Hermes я бы поковырялся бы... выложи пожалуйста на форум ... Dec 22 2008, 18:04 sergik_vrn выкладываю. собственно, небольшие изменения в исхо... Dec 23 2008, 06:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|