С ARM ни разу не сталкивался, и тут можно сказать сразу в огонь - нужно некий код с ARM7 перенести на Cortex-M3, а если конкретнее, то на сабж. Старый код писан в IAR, крутиться в бесконечном цикле. Есть какой-то планировщик задач, но в целом - это цикл. Вводят в ступор все эти IRQ, тонны инициализации периферии... Ессно все это не собирается под новое ядро.
Поэтому стоит вопрос: а) найти где-то скелет под сабж и делать по образу и подобию старого кода, то есть вкручивать свой планировщик задач, бесконечный цикл.
б) заюзать какую-нибудь RTOS, например FreeRTOS. Усугубляется положение еще и тем, что кроме как знакомого названия (FreeRTOS) больше мне это ни о чем не говорит. Вроде как система реального времени, значит наверное можно свои процессы выполнять и упорядочивать - вот все что я пока о ней думаю.
Как поступить?
PS: На сабже светодиодом поморгал, так что hello world почти пройден...
NXP LPC1768 быстрый старт
Moderator: Shaos
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
-
- Novelist
- Posts: 39
- Joined: 24 Dec 2004 13:58
- Location: UK
А на каком языке все это написано?
http://www.google.co.uk/search?q=migrat ... +cortex+M3
С моей точки зрения нужно попытаться перенести код с минимальными изменениями. Придумывать его заново на неизвестной архитектуре не имеет смысла. Определите отличия и сделайте модификации / заглушки или вставьте код для конверсии деталей одной архитектуры в другую на уровне регистров, управления периферией и тп.
Я ARMы знаю плохо но миграция на Cortex в то время очень хорошо была организована. Я только помню что в Cortex-ах остался Thumb а полноценный режим был уничтожен. Но если у Вас там все на С или выше то можно об этом не заботиться на первом этапе.
http://www.google.co.uk/search?q=migrat ... +cortex+M3
С моей точки зрения нужно попытаться перенести код с минимальными изменениями. Придумывать его заново на неизвестной архитектуре не имеет смысла. Определите отличия и сделайте модификации / заглушки или вставьте код для конверсии деталей одной архитектуры в другую на уровне регистров, управления периферией и тп.
Я ARMы знаю плохо но миграция на Cortex в то время очень хорошо была организована. Я только помню что в Cortex-ах остался Thumb а полноценный режим был уничтожен. Но если у Вас там все на С или выше то можно об этом не заботиться на первом этапе.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
В общем, все таки заморочился с RTOS. Сначала копнул в сторону некой ChibiOS, нашел вроде бы даже порт под LPC1768. Собрать увы не смог, не помню уже что за ошибки, но как то не сраслось. Хотя подкупила вначале наличием HAL, и соответственно легкостью переносимости кода в дальнейшем на любой другой проц.
Поэтому успокоился и начал ковырять FreeRTOS. День ушел на то, чтобы спаять JTAG и поморгать светодиодом с помощью таска в ней. Потом собрал какой-то пример с web-сервером и брикнул ковыряемую плату, так что в H-JTAG проц определяется, но во флешере наглухо не чекается и не считывается-прошивается. Пол дня угрохал на анбрик с помощью магии и бубна. Седня день угрохал на то, что бы как-то скрестить дрова от LPCOpen с FreeRTOS, в частности очень интересен UART для начала. Добился того, что хоть собралось без ошибок. UART не заработал, наверное с инициализацией что-то.. Будем смотреть...
Да, ARM это не PIC....
Поэтому успокоился и начал ковырять FreeRTOS. День ушел на то, чтобы спаять JTAG и поморгать светодиодом с помощью таска в ней. Потом собрал какой-то пример с web-сервером и брикнул ковыряемую плату, так что в H-JTAG проц определяется, но во флешере наглухо не чекается и не считывается-прошивается. Пол дня угрохал на анбрик с помощью магии и бубна. Седня день угрохал на то, что бы как-то скрестить дрова от LPCOpen с FreeRTOS, в частности очень интересен UART для начала. Добился того, что хоть собралось без ошибок. UART не заработал, наверное с инициализацией что-то.. Будем смотреть...
Да, ARM это не PIC....
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Да, старт оказался нифига не быстрым. Седня почти пол дня пытался хоть что-то вывести в UART создав таск в FreeRTOS. В итоге получилось выводить. Еще один шаг пройден. Теперь нужно собирать данные из UART. Смотрел в сторону FreeRTOS+IO из FreeRTOS-Plus, но пока не решился. Сделал через обработчик IRQ. Подсознательно чувствую, что это говнокод и так делать не гуд, но зато это работает. Может в дальнейшем все-таки разберусь с FreeRTOS-IO. Теперь делаю CLI aka shell....
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
-
- Novelist
- Posts: 39
- Joined: 24 Dec 2004 13:58
- Location: UK
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Включен. Таки завел. Внезапно оказалось, что CS aka SSEL распаяна не на SSEL SSP0, а рядом на какую-то левую ногу. Приходится дергать ногой самому. Не знаю как на это смотрит FreeRTOS, наверно так делать нельзя, но работает. По крайней мере флеха отдает правильный ID. И что-то читает. Завтра считаю флеху на программаторе и сравню с тем, что читается.
-
- Novelist
- Posts: 39
- Joined: 24 Dec 2004 13:58
- Location: UK