Jump to content

    

Портирование uCOS под LPC1758

Попробовал я соорудить тестовую задачу под управлением uC-OS II. Сварганил такой небольшой проект под LPC1758, прицепил к нему программатор J-Link и все это в среде EWARM 5.5 откомпилил. ВСе откомплилось, слинковалось и даже залилось в микроконтроллер. Все хорошо, но после отработки OSStart() все это уходит в подполье и задача TaskKBD никак себя не проявляет. Похоже, ОС в нее не входит и вообще контекст не переключает.

Может я что-то не учел? Что-то очень важное...

Посмотрите проект плиз. Test_OS.zip

Share this post


Link to post
Share on other sites
Стеки IDLE и STAT не маловаты?

 

Кто знает, может, конечно, и 128 байтов мало, но это ведь сам автор Jean J. Labrosse такие размеры установил, вряд ли всем, кто работает с uC/OS-II, пришлось эти размеры менять - по крайней мере, где-нибудь сведения о таком бы сохранились. Думаю, что не может быть дело в этом.

Share this post


Link to post
Share on other sites

Все оказалось гораздо проще. В исходниках (файл os_cpu_a.asm) в обработчике системного прерывания OS_CPU_PendSVHandler оказалась закомментированной строка

CBZ R0, OS_CPU_PendSVHandler_nosave ; Skip register save the first time

и программа, естественно, по первому разу улетала далеко-далеко, потому что в первый раз PSP - нуль. :wacko:

Убрал комментарий, и все заработало...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this