реклама на сайте
подробности

 
 
> порт Cortex-M4 + IAR
Anatoly74
сообщение Mar 10 2015, 11:02
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 28-10-10
Пользователь №: 60 480



Знатоки, поделитесь, плз, портом Cortex-M4 для IAR. Будет ли работать для М4 порт IAR Cortex-M3?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prgjz
сообщение Aug 8 2016, 16:17
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Получился у кого порт для IAR M4?
У меня для LPC1769 без проблем...
А вот LPC4087 только без FPU работает.
Посмотрел в scmRTOS\port\cortex\mx-gcc\
и сделал изменеимя в os_target_asm.s

os_start
......
#if __ARMVFP__
LDR R4, [R0, #(4 * 15)] // Load process entry point into R4
ADD R0, R0, #(4 * 17) // emulate context restore
#else
LDR R4, [R0, #(4 * 14)] // Load process entry point into R4
ADD R0, R0, #(4 * 16) // emulate context restore
#endif

вообще не стартует.
Если
LDR R4, [R0, #(4 * 14)] и ADD R0, R0, #(4 * 16) оставить
то TProc1::exec() вызывается правильно но PendSV_Handler
при первом вызове в конце в летит и переключение не происходит.






Моя ошибка - не доглядел...
Изменил в os_target.cpp

#ifdef __ARMVFP__
StackPointer -= 6; // emulate "push LR,R12,R3,R2,R1,R0"
*(--StackPointer) = 0xFFFFFFFDUL; // exc_return: Return to Thread mode, floating-point context inactive, execution uses PSP after return.
StackPointer -= 8; // emulate "push R4-R11"
#else
StackPointer -= 14; // emulate "push R14,R12,R3,R2,R1,R0,R11-R4"
#endif

и всё пошло!!!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016