JeDay 0 26 февраля, 2006 Опубликовано 26 февраля, 2006 · Жалоба В синтаксис директив компилятора не освоил еще. В коде ИАРа есть такие строки: RSEG CODE:CODE:NOROOT(2) CODE32 Не знаю что с ними в Кейле делать... Может у кого нить есть файлик "os_cpu_a.asm" уже переделанный ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 26 февраля, 2006 Опубликовано 26 февраля, 2006 · Жалоба Есть весь ихний порт под IAR включая BSP для LPC2138 переделанный под KEIL, но для RealView компилятора. А строки ихние заменяете на это PRESERVE8 AREA CODE,CODE, READONLY ARM правда этим не отделаетесь, но все равно с чего то надо начинать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 28 февраля, 2006 Опубликовано 28 февраля, 2006 · Жалоба А какие там еще подводные камни есть ? Может лучше в IAR писать ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 28 февраля, 2006 Опубликовано 28 февраля, 2006 · Жалоба В принципе там уже по мелочам остается. Убрать спецификаторы ARM__ в С коде. Изменить префиксы ?? на ченить другое в asm коде и т.д. Новичку наверно лучше остаться на IAR. Там и OS viewer есть и startup попроще делается. Но будет худщий код и ниже производительность отладки как процесса по сравнению с KEIL RealView. А с опытом это становится самым важным. Так что думайте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bombastic 0 24 марта, 2006 Опубликовано 24 марта, 2006 (изменено) · Жалоба Вот поправил os_cpu_a под KEIL... Компилится без ошибок, но за работоспособнсть не могу сказать :unsure: , еще не проверял. Блин файл не прикрепляется поэтому код прям здесь напишу. ;************************************************************************* ; uOS ; The Real-Time Kernel ; Generic ARM Port ; ;************************************************************************* EXTERN DATA (OSRunning) ; External references EXTERN DATA (OSPrioCur) EXTERN DATA (OSPrioHighRdy) EXTERN DATA (OSTCBCur) EXTERN DATA (OSTCBHighRdy) EXTERN DATA (OSIntNesting) EXTERN CODE32 (OSIntExit?A) EXTERN CODE32 (OSTaskSwHook?A) EXTERN CODE32 (OS_CPU_IRQ_ISR_Handler?A) EXTERN CODE32 (OS_CPU_FIQ_ISR_Handler?A) PUBLIC OS_CPU_SR_Save?A ; Functions declared in this file PUBLIC OS_CPU_SR_Restore?A PUBLIC OSStartHighRdy?A PUBLIC OSCtxSw?A PUBLIC OSIntCtxSw?A PUBLIC OS_CPU_IRQ_ISR?A PUBLIC OS_CPU_FIQ_ISR?A NO_INT EQU 0xC0 ; Mask used to disable interrupts (Both FIR and IRQ) SVC32_MODE EQU 0x13 FIQ32_MODE EQU 0x11 IRQ32_MODE EQU 0x12 ;**************************************************************************** ; CRITICAL SECTION METHOD 3 FUNCTIONS ; ;**************************************************************************** AREA OS_CPU_A, CODE, READONLY, ALIGN=2 ; Declare the segment OS_CPU_SR_Save?A MRS R0,CPSR ; Set IRQ and FIQ bits in CPSR to disable all interrupts ORR R1,R0,#NO_INT MSR CPSR_c,R1 MRS R1,CPSR ; Confirm that CPSR contains the proper interrupt disable flags AND R1,R1,#NO_INT CMP R1,#NO_INT BNE OS_CPU_SR_Save?A ; Not properly disabled (try again) BX LR ; Disabled, return the original CPSR contents in R0 OS_CPU_SR_Restore?A MSR CPSR_c,R0 BX LR . . и т.д. . . ;**************************************************************************** ; POINTERS TO VARIABLES ;**************************************************************************** ??OS_TaskSwHook: DD OSTaskSwHook?A ??OS_CPU_IRQ_ISR_Handler: DD OS_CPU_IRQ_ISR_Handler?A ??OS_CPU_FIQ_ISR_Handler: DD OS_CPU_FIQ_ISR_Handler?A ??OS_IntExit: DD OSIntExit?A ??OS_IntNesting: DD OSIntNesting ??OS_PrioCur: DD OSPrioCur ??OS_PrioHighRdy: DD OSPrioHighRdy ??OS_Running: DD OSRunning ??OS_TCBCur: DD OSTCBCur ??OS_TCBHighRdy: DD OSTCBHighRdy END Изменено 24 марта, 2006 пользователем bombastic Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться