|
|
  |
Портирование uCOS под CrossWorks, Кто-нибудь портировал uCOS под CrossWorks? |
|
|
|
Apr 29 2010, 14:46
|

Участник

Группа: Участник
Сообщений: 27
Регистрация: 28-04-10
Из: город Харьков
Пользователь №: 56 948

|
Кто-нибудь портировал uCOS под CrossWorks? Если да, подскажите, как в этой среде сделать, чтобы CrossWorks понимала PRIMASK, PSP и другие специальные регистры. И вообще, откуда взялись ошибки типа STM R0, {R4-R11} Io register required LDM R0, {R4-R11} Io register required POP {R14} unvalid register list to push/pop instruction (при этом команда PUSH {R14} прошла без вопросов) ORR LR, LR, #0x04 unshifted register required Ассемблерные команды вроде бы правильные, соответствуют архитектуре Cortex, но... Отзовитесь, плиз. Пожалуйста, не удаляйте эту тему.
Сообщение отредактировал Lemist - Apr 29 2010, 15:23
|
|
|
|
|
Apr 30 2010, 07:06
|

Участник

Группа: Участник
Сообщений: 27
Регистрация: 28-04-10
Из: город Харьков
Пользователь №: 56 948

|
Цитата(AlexandrY @ Apr 29 2010, 19:37)  Поищите в этом проекте. Во всяком случае компилироваться должно без ошибок. http://www.alylab.eu/OpenProjects/ARMDomin...RMDominator.htmСпасибо за ссылку, но проект сделан не под процессор типа Cortex. Да, тот демо-проект скомпилировался без ошибок, но применить его не удалось - там все ассемблерные команды ARM, но не Thumb-only processor, каковым - уточняю - является LPC1758 с ядром Cortex. Так что портирование не удалось.
|
|
|
|
|
Apr 30 2010, 21:37
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 22-03-10
Пользователь №: 56 131

|
Цитата(Lemist @ Apr 30 2010, 08:06)  Спасибо за ссылку, но проект сделан не под процессор типа Cortex. Да, тот демо-проект скомпилировался без ошибок, но применить его не удалось - там все ассемблерные команды ARM, но не Thumb-only processor, каковым - уточняю - является LPC1758 с ядром Cortex. Так что портирование не удалось. Тут смотрел? Упоминается конкретно M3.
|
|
|
|
|
May 11 2010, 12:45
|

Участник

Группа: Участник
Сообщений: 27
Регистрация: 28-04-10
Из: город Харьков
Пользователь №: 56 948

|
Цитата(igorsk @ May 1 2010, 00:37)  Тут смотрел? Упоминается конкретно M3. Это сайт Micrium, там по указанной ссылке так просто не попасть - предлагают зарегистрироваться. Все бы ничего, но в процедуре регистрации имеется комбо со списком Target Processor. Так вот, в этом списке НЕТ Cortex, а где же он тогда по этой ссылке упоминается конкретно? Я просто наверняка не пройду регистрацию, потому что не нашел там Cortex. Может, плохо смотрел (хотя два раза и внимательно)?
|
|
|
|
|
May 11 2010, 15:56
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208

|
А вы не пробовали вообще не указывать директивы вроде code16 или code32? Cortex - то ведь thumb-only процессор, у него один-единственный набор команд, следовательно и необходимость подобных директив отпадает. В даташите на процессор под ARM-инструкциями для LPC17xx понимаются существующие 32-разрядные инструкции, но на самом деле они лежат в одном наборе с 16-разрядными под общим названием Thumb-2 и не требуют особого объявления. Есть, конечно, такие команды как LDR.N (16 бит) и LDR.W (32 бит), но это уже, скорее, тема для иного разговора, если интересно, можете почитать о них в документации.
|
|
|
|
|
May 12 2010, 06:25
|

Участник

Группа: Участник
Сообщений: 27
Регистрация: 28-04-10
Из: город Харьков
Пользователь №: 56 948

|
Цитата(bseyur @ May 11 2010, 18:56)  А вы не пробовали вообще не указывать директивы вроде code16 или code32? Cortex - то ведь thumb-only процессор, у него один-единственный набор команд, следовательно и необходимость подобных директив отпадает. В даташите на процессор под ARM-инструкциями для LPC17xx понимаются существующие 32-разрядные инструкции, но на самом деле они лежат в одном наборе с 16-разрядными под общим названием Thumb-2 и не требуют особого объявления. Есть, конечно, такие команды как LDR.N (16 бит) и LDR.W (32 бит), но это уже, скорее, тема для иного разговора, если интересно, можете почитать о них в документации. Если не указывать никакой директивы "вроде code16 или code32", эффект тот же, как и при указании code16 - ассемблерный файл компилится, а потом при линковании выпадают все те сообщения, что упомянуты у меня в предыдущей реплике: C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 1.7/gcc/bin/ld: region UNPLACED_SECTIONS is full (THUMB Flash Debug/LPC1756_Test.elf section .code) Что это за region UNPLACED_SECTIONS и чем это он забит? Ведь в компилируемом ассемблерном файле четко указано .section .code, "ax" то есть это именованная секция.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|