|
EWARM 5.10 |
|
|
|
 |
Ответов
|
Aug 29 2007, 07:39
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
zltigoВроде вчера удалось скомпилировать и запустить, но при запуске шедулера сразу возникает DataAbort, причем он меня просто вводит в ступор. При создании задач формируются стеки этих задач, соответственно, туда кладется содержимое регистров задачи, это понятно. Первым в стек суется адрес возврата, вторым - содержимое R14 (LR), равное 0xaaaaaaaa. Остальные регистры забиваются тоже чепухой. Понятное дело, после переключения туда (в стек задачи) будут записаны реальные значения. Потом при старте шедулера, выполняется vPortStartFirstTask, который на самом деле запрещает прерывания и вызывает portRESTORE_CONTEXT, коий я приведу тут целиком: Код portRESTORE_CONTEXT MACRO
; Set the LR to the task stack. LDR R1, =pxCurrentTCB LDR R0, [R1] LDR LR, [R0]
; The critical nesting depth is the first item on the stack. ; Load it into the ulCriticalNesting variable. LDR R0, =ulCriticalNesting LDMFD LR!, {R1} STR R1, [R0]
; Get the SPSR from the stack. LDMFD LR!, {R0} MSR SPSR_cxsf, R0
; Restore all system mode registers for the task. LDMFD LR, {R0-R14}^ NOP
; Restore the return address. LDR LR, [LR, #+60]
; And return - correcting the offset in the LR to obtain the ; correct address. SUBS PC, LR, #4
ENDM На строке LDMFD LR, {R0-R14}^ во все регистры записывается соответствующий мусор (оно и правильно, первый запуск), а вот в LR записывается вот то самое 0xaaaaaaaa, которое было записано в стек, а не адрес возврата. Понятно, на LDR LR,[LR, #+60] мы имеем DAbort. При этом в случае с 4.х после выполнения этой инструкции LR просто увеличивается, как ему и положено. Вот такие чудеса.
|
|
|
|
|
Aug 29 2007, 14:58
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(alexander55 @ Aug 29 2007, 13:55)  Не знаю, о чем речь (подозреваю о прикручивании каких-то колес), но судя тексту у Вас pxCurrentTCB не правильно инициализируется где-то выше. Речь о прикручивании FreeRTOS к новой версии Очень верное замечание! Раньше стек выравнивался к 4 байтам, а теперь - к 8. Буду копать, спасибо за наводку!
|
|
|
|
|
Aug 29 2007, 18:03
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(zltigo @ Aug 29 2007, 19:44)  Я не знаю, куда Вы там 'закопались', но с портированием ядра FreeRTOS проблем нет. Совсем нет. Тупо за полчаса поверхностного изучения линкера и ассемблера портируется. Поблемы вылезают, но не на банальной демке ядра. Я тоже так подумал, поменял во всех ассемблерных исходниках имена сегментов, подставил стартап-файлы из поставки 5.10 и теперь имею реальный полтергейст с инструкцией LDMIA. Там, где работает: Код ДО SP=0xFEA4 LR=0x34EC 0x34EC-0x3527: 00 00 00 00 01 01 01 01 02 02 02 02 03 03 03 03 04 04 04 04 05 05 05 05 06 06 06 06 07 07 07 07 08 08 08 08 09 09 09 09 10 10 10 10 11 11 11 11 12 12 12 12 28 35 00 00 aa aa aa aa
portRESTORE_CONTEXT 000001F4 E8DE7FFF LDMIA LR, {R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,SP,LR}^
ПОСЛЕ SP=0xFEA4 LR=0x34EC В новом компиляторе: Код ДО SP=0x3290 LR=0x40CC 0x40CC-0x412C: 00 00 00 00 01 01 01 01 02 02 02 02 03 03 03 03 04 04 04 04 05 05 05 05 06 06 06 06 07 07 07 07 08 08 08 08 09 09 09 09 10 10 10 10 11 11 11 11 12 12 12 12 08 41 00 00 aa aa aa aa
portRESTORE_CONTEXT 0000232C E8DE7FFF LDMIA LR, {R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,SP,LR}^
ПОСЛЕ SP=0x4108 LR=0xAAAAAAAA Я не понимаю, почему так, буду разбираться с режимом процессора.
|
|
|
|
|
Aug 29 2007, 19:07
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Kitsok @ Aug 29 2007, 21:03)  Я тоже так подумал, поменял во всех ассемблерных исходниках имена сегментов Совсем не обязательно - пусть будут самостоятельным сегментом, никаких проблем. Я вообще ничего не менял во FreeRTOS асмовских исходниках при переходе под 5.10 Цитата подставил стартап-файлы из поставки 5.10 Без понятия, что там 'в поставке' - подправил свой. И линковый скрипт с чистого листа. Цитата Я не понимаю, почему так, буду разбираться с режимом процессора. Я в ARM моде гоняю. Пересобрал в Thumb (при этом ядро стало больше похоже на родное, поскольку пришлось вернутся к штатным CRITICAL_SECTION, ибо мои исключительно под ARM Mode заточены) - естественно, неизменно превосходный результат.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 30 2007, 06:59
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(zltigo @ Aug 29 2007, 23:07)  Я в ARM моде гоняю. Пересобрал в Thumb (при этом ядро стало больше похоже на родное, поскольку пришлось вернутся к штатным CRITICAL_SECTION, ибо мои исключительно под ARM Mode заточены) - естественно, неизменно превосходный результат. Я про другие режимы Собственно, проблема обнаружилась в том, что при подходе к main() старые стартапы переводили процессор в supervisor mode, а новые в другой режим. Так что, придется разбираться в стартапах, хоть и не хотелось.
|
|
|
|
|
Aug 31 2007, 07:02
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
В общем, после адаптации старых стартапов к новому компилеру вроде завелось, но как-то странно. Во-первых, пришлось в лоб в startup.s задавать начало памяти, бо раньше (поправьте если не так) можно было пользоваться именами из .xcl, а в новом - фиг, по крайней мере, у меня не получилось. Во-вторых, не знаю почему, но в случае если таблица векторов объявляется не как b <туда-то>, а как ldr pc,[pc,#+24], и в соответствующих местах размещать b или прямо код (в случае с FIQ), то при первом-же прерывании возникает undefined instruction. Подозреваю, что что-то не так с thumb/arm, но разобраться не получилось. В общем, поскольку этот переход затянулся, я откатился на 4.х. На всякий случай, вот полу-рабочие стартапы и конфиг. comments are welcome
Прикрепленные файлы
new.rar ( 5.21 килобайт )
Кол-во скачиваний: 53
|
|
|
|
|
Aug 31 2007, 08:04
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Kitsok @ Aug 31 2007, 10:02)  Во-первых... Во-первых я свои startup и скрипрт выкладывал, причем было-стало и рабочие. Цитата а в новом - фиг, по крайней мере, у меня не получилось. Нет, конечно. Цитата случае если таблица векторов объявляется не как b <туда-то>, а как.. Нет, конечно.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
zltigo EWARM 5.10 Jun 27 2007, 16:28 rezident В новостях на их сайте еще ничего нет, как и на фт... Jun 27 2007, 18:29 zltigo Цитата(rezident @ Jun 27 2007, 21:29) В н... Jun 27 2007, 19:23 IgorKossak Цитата(rezident @ Jun 27 2007, 21:29) Я д... Jun 27 2007, 19:24 KRS а с ftp IARовского который не .com ( и на который ... Jun 27 2007, 19:35 el34 KRS>это только у меня сейчас такой глюк, вроде ... Jun 27 2007, 19:42 IgorKossak Цитата(el34 @ Jun 27 2007, 22:42) KRS... Jun 27 2007, 20:10 MALLOY2 Жду не дождусь IAR 5.10, надеюсь там уже STR9xxFAW... Jun 28 2007, 13:32 KRS Цитата(MALLOY2 @ Jun 28 2007, 17:32) Жду ... Jun 28 2007, 14:12 zltigo Пришел месячный анонс от IAR, но ничего нового для... Jun 28 2007, 13:59 MALLOY2 Ну если несчстать 20% прирост производительности (... Jun 29 2007, 07:26 ig_z Цитата(MALLOY2 @ Jun 29 2007, 10:26) Ну е... Jul 2 2007, 14:08 SpiritDance А вот интересно, код от старых процов с этими новы... Jun 29 2007, 13:22 MALLOY2 Да Jul 1 2007, 07:30 MALLOY2 КодТам конечно мелоч руками подправить но влом ... Jul 3 2007, 09:46 zltigo Итак, появились и 4.42 и 5.10 версии.
4.42 - чес... Jul 11 2007, 22:08 KRS Цитата(zltigo @ Jul 12 2007, 02:08) Итак,... Jul 12 2007, 07:35  zltigo Цитата(KRS @ Jul 12 2007, 10:35) А теперь... Jul 12 2007, 08:00   IgorKossak Цитата(zltigo @ Jul 12 2007, 11:00) А чем... Jul 12 2007, 10:52 OLEG_BOS Цитата(zltigo @ Jul 12 2007, 01:08) Итак,... Jul 13 2007, 06:25  zltigo Цитата(OLEG_BOS @ Jul 13 2007, 09:25) С с... Jul 13 2007, 08:08 zltigo Запустил попугаемер aka DHRYSTONE 1.1 - получил пр... Jul 12 2007, 15:41 lebiga Цитата(zltigo @ Jul 12 2007, 19:41) Запус... Jul 12 2007, 17:58  zltigo Цитата(lebiga @ Jul 12 2007, 20:58) подск... Jul 12 2007, 18:19 bookevg По старому варианту папка бин не лечится. Что дела... Jul 13 2007, 07:36 zltigo Цитата(bookevg @ Jul 13 2007, 10:36) По с... Jul 13 2007, 08:10  MALLOY2 ЦитатаДругому линкеру не подсунуть - ЧТО ОЧЕНЬ ОБ... Jul 13 2007, 10:11   KRS Цитата(MALLOY2 @ Jul 13 2007, 14:11) КодC... Jul 13 2007, 15:50    zltigo Цитата(KRS @ Jul 13 2007, 18:50) А у меня... Jul 13 2007, 17:01     lebiga [..........]
Скомпилировал проекты - все нормально... Jul 13 2007, 19:18      zltigo Цитата(lebiga @ Jul 13 2007, 22:18) разме... Jul 14 2007, 00:10  SpiritDance Цитата(zltigo @ Jul 13 2007, 12:10) 2. Ин... Jul 13 2007, 11:04   zltigo Цитата(SpiritDance @ Jul 13 2007, 14:04) ... Jul 13 2007, 12:09  ig_z Цитата(zltigo @ Jul 13 2007, 11:10) 1. Пр... Jul 13 2007, 14:10 KRS Но самая большая Ж....
теперь с вычислениями - в в... Jul 13 2007, 16:52 IgorKossak М-м-да! Я уж было подумал, что производители к... Jul 14 2007, 12:16 zltigo Цитата(IgorKossak @ Jul 14 2007, 15:16) И... Jul 14 2007, 13:06 zltigo В общем с EWARM 5.10 все в порядке. В пределах нео... Jul 15 2007, 14:16 KRS Я вот в мигрейшен гиде прочитал что теперь ни ассм... Jul 15 2007, 18:31 IgorKossak Цитата(KRS @ Jul 15 2007, 21:31) Я вот в ... Jul 15 2007, 20:08 zltigo Цитата(KRS @ Jul 15 2007, 21:31) Получает... Jul 15 2007, 21:26  KRS Цитата(zltigo @ Jul 16 2007, 01:26) Естес... Jul 16 2007, 07:56 KRS Посомтрел я несколько листингов от 5.10 для THUMB,... Jul 16 2007, 09:16 zltigo Цитата(KRS @ Jul 16 2007, 12:16) Посомтре... Jul 16 2007, 10:22 Rst7 Цитата(KRS @ Jul 16 2007, 12:16) Посомтре... Aug 27 2007, 05:27  zltigo Цитата(Rst7 @ Aug 27 2007, 08:27) Это он ... Aug 27 2007, 05:54   Kitsok Поставил 5.1
Перестало работать с H-JTag 0.4.4, кр... Aug 28 2007, 08:16    zltigo Цитата(Kitsok @ Aug 28 2007, 11:16) кроме... Aug 28 2007, 08:22     Kitsok Цитата(zltigo @ Aug 28 2007, 12:22) Удиви... Aug 28 2007, 10:08      zltigo Цитата(Kitsok @ Aug 28 2007, 13:08) Весь... Aug 28 2007, 10:20 ZMax подскажите , пожалуйста , ссылочку на мигрейшн гид... Jul 16 2007, 13:33 zltigo Цитата(ZMax @ Jul 16 2007, 16:33) подскаж... Jul 16 2007, 14:01 Nikola Kirov A keygen для 5.10 уже сделан?
Может кто то на фтп ... Aug 25 2007, 05:51 zltigo Цитата(Nikola Kirov @ Aug 25 2007, 08:51)... Aug 25 2007, 14:17 Nikola Kirov H-JTag 0.4.4 заработал у меня.
Попробовал с AT91S... Aug 28 2007, 10:21 zltigo Если кому интересно, то в приложении асемблерные с... Aug 28 2007, 10:38 Kitsok zltigo
Я прошу прощения за столь ламерский вопрос... Aug 28 2007, 12:16  zltigo Цитата(Kitsok @ Aug 28 2007, 15:16) но...... Aug 28 2007, 20:43 Pasha 111 zltigo, возвращаясь к вопросу кей гена (просьба не... Aug 28 2007, 20:23 Pasha 111 ЦитатаНУ ТАК ИСПРАВЬТЕ ВНУТРИ KEYGEN СТРОЧКУ xx_WI... Aug 28 2007, 21:19 zltigo Цитата(Pasha 111 @ Aug 29 2007, 00:19) Та... Aug 28 2007, 21:27            Kitsok Цитата(zltigo @ Aug 31 2007, 12:04) Нет, ... Aug 31 2007, 09:55 MALLOY2 Нашел 2 голюка, прошу проверить , глюки не критичн... Aug 31 2007, 09:26 zltigo Цитата(MALLOY2 @ Aug 31 2007, 12:26) Глюк... Aug 31 2007, 09:36 MALLOY2 ЦитатаПо поводу первого бага - не скажу, визардами... Aug 31 2007, 10:05 zltigo Цитата(MALLOY2 @ Aug 31 2007, 13:05) но т... Aug 31 2007, 10:19 MALLOY2 Цитатану и куда их wizard дальше вставляет? - в т... Aug 31 2007, 10:56 zltigo Цитата(MALLOY2 @ Aug 31 2007, 13:56) да к... Aug 31 2007, 12:25 MALLOY2 --image_input это и делает Aug 31 2007, 13:18 starmos Подскажите, как в IAR узнать время работы участка ... Sep 1 2007, 09:07 alexander55 Цитата(starmos @ Sep 1 2007, 13:07) Подск... Sep 3 2007, 06:05 MALLOY2 ЦитатаПодскажите, как в IAR узнать время работы уч... Sep 3 2007, 07:54 MALLOY2 По поводу стартовой метки __iar_program_start эта ... Sep 3 2007, 11:37 zltigo Цитата(MALLOY2 @ Sep 3 2007, 14:37) По по... Sep 3 2007, 12:01 starmos Спасибо за помощь. Но я тоже нашел. В симуляторе, ... Sep 5 2007, 12:11 Сергей Борщ Цитата(starmos @ Sep 5 2007, 15:11) Софт ... Sep 5 2007, 12:42 MALLOY2 ЦитатаСпасибо за помощь. Но я тоже нашел. В симуля... Sep 5 2007, 20:27 starmos P0.14 подтянут куда надо Я уже проверил.
Контроль... Sep 6 2007, 03:50 alexander55 Цитата(starmos @ Sep 6 2007, 07:50) P0.14... Sep 6 2007, 04:37 MALLOY2 ЦитатаPS. CYCLECOUNTER - счётчик циклов именно. Зн... Sep 6 2007, 05:46 starmos Запустил. Как обычно в таких случаях чувствуешь се... Sep 6 2007, 06:36 Vict59 Насколько я понял для переформатирования .elf файл... Sep 21 2007, 08:16 alexander55 Цитата(Vict59 @ Sep 21 2007, 12:16) Наско... Sep 21 2007, 08:28 zltigo Цитата(Vict59 @ Sep 21 2007, 11:16) не на... Sep 21 2007, 08:44 Vict59 ЦитатаИнтересно, а чем Вас Hex или mot не устраива... Sep 21 2007, 16:27 Vict59 Ну вот попробовал. Командная строка типа:
objcopy.... Sep 21 2007, 17:36 zltigo Цитата(Vict59 @ Sep 21 2007, 20:36) работ... Sep 21 2007, 18:21 Vict59 Цитата- Для начала кокого-то путь objcjpy зачем-то... Sep 21 2007, 19:37
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|