Перейти к содержанию
    

Порт для uCOS-II (AN-1014)

В синтаксис директив компилятора не освоил еще. В коде ИАРа есть такие строки:

RSEG CODE:CODE:NOROOT(2)
CODE32

Не знаю что с ними в Кейле делать...

Может у кого нить есть файлик "os_cpu_a.asm" уже переделанный ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть весь ихний порт под IAR включая BSP для LPC2138 переделанный под KEIL, но для RealView компилятора.

А строки ихние заменяете на это

PRESERVE8

AREA CODE,CODE, READONLY

ARM

 

:biggrin: правда этим не отделаетесь, но все равно с чего то надо начинать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе там уже по мелочам остается. Убрать спецификаторы ARM__ в С коде.

Изменить префиксы ?? на ченить другое в asm коде и т.д.

Новичку наверно лучше остаться на IAR. Там и OS viewer есть и startup попроще делается.

Но будет худщий код и ниже производительность отладки как процесса по сравнению с KEIL RealView. А с опытом это становится самым важным. Так что думайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот поправил 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

Изменено пользователем bombastic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...