nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 04:41



Reply to topic  [ 10 posts ] 
NXP LPC1768 быстрый старт 
Author Message
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
С ARM ни разу не сталкивался, и тут можно сказать сразу в огонь - нужно некий код с ARM7 перенести на Cortex-M3, а если конкретнее, то на сабж. Старый код писан в IAR, крутиться в бесконечном цикле. Есть какой-то планировщик задач, но в целом - это цикл. Вводят в ступор все эти IRQ, тонны инициализации периферии... Ессно все это не собирается под новое ядро.

Поэтому стоит вопрос: а) найти где-то скелет под сабж и делать по образу и подобию старого кода, то есть вкручивать свой планировщик задач, бесконечный цикл.
б) заюзать какую-нибудь RTOS, например FreeRTOS. Усугубляется положение еще и тем, что кроме как знакомого названия (FreeRTOS) больше мне это ни о чем не говорит. Вроде как система реального времени, значит наверное можно свои процессы выполнять и упорядочивать - вот все что я пока о ней думаю.

Как поступить?

PS: На сабже светодиодом поморгал, так что hello world почти пройден...


09 Oct 2014 13:12
Profile
Novelist

Joined: 24 Dec 2004 13:58
Posts: 39
Location: UK
Reply with quote
Post 
А на каком языке все это написано?

http://www.google.co.uk/search?q=migrating+arm7+to+cortex+M3

С моей точки зрения нужно попытаться перенести код с минимальными изменениями. Придумывать его заново на неизвестной архитектуре не имеет смысла. Определите отличия и сделайте модификации / заглушки или вставьте код для конверсии деталей одной архитектуры в другую на уровне регистров, управления периферией и тп.

Я ARMы знаю плохо но миграция на Cortex в то время очень хорошо была организована. Я только помню что в Cortex-ах остался Thumb а полноценный режим был уничтожен. Но если у Вас там все на С или выше то можно об этом не заботиться на первом этапе.


09 Oct 2014 13:48
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
Код писан на Си. Но в кортексах они переделали работу с прерываниями, а на них там многое завязано...


09 Oct 2014 22:07
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
В общем, все таки заморочился с RTOS. Сначала копнул в сторону некой ChibiOS, нашел вроде бы даже порт под LPC1768. Собрать увы не смог, не помню уже что за ошибки, но как то не сраслось. Хотя подкупила вначале наличием HAL, и соответственно легкостью переносимости кода в дальнейшем на любой другой проц.

Поэтому успокоился и начал ковырять FreeRTOS. День ушел на то, чтобы спаять JTAG и поморгать светодиодом с помощью таска в ней. Потом собрал какой-то пример с web-сервером и брикнул ковыряемую плату, так что в H-JTAG проц определяется, но во флешере наглухо не чекается и не считывается-прошивается. Пол дня угрохал на анбрик с помощью магии и бубна. Седня день угрохал на то, что бы как-то скрестить дрова от LPCOpen с FreeRTOS, в частности очень интересен UART для начала. Добился того, что хоть собралось без ошибок. UART не заработал, наверное с инициализацией что-то.. Будем смотреть...

Да, ARM это не PIC....


11 Oct 2014 11:57
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
Да, старт оказался нифига не быстрым. Седня почти пол дня пытался хоть что-то вывести в UART создав таск в FreeRTOS. В итоге получилось выводить. Еще один шаг пройден. Теперь нужно собирать данные из UART. Смотрел в сторону FreeRTOS+IO из FreeRTOS-Plus, но пока не решился. Сделал через обработчик IRQ. Подсознательно чувствую, что это говнокод и так делать не гуд, но зато это работает. Может в дальнейшем все-таки разберусь с FreeRTOS-IO. Теперь делаю CLI aka shell....


12 Oct 2014 07:27
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
Весь день угрохал чтоб завести SSP в режиме SPI. Не завел. Делал уже тупо по ману, писал сам в конф регистры что надо и потом писал в DR в цикле значения - смотрю осцилом: На MISO - постоянный 0, CLCK - ноль. Херня какая-то.


16 Oct 2014 23:29
Profile
Novelist

Joined: 24 Dec 2004 13:58
Posts: 39
Location: UK
Reply with quote
Post 
А peripheral clock для SPP включен или нет? После сброса он выключен по умолчанию.


17 Oct 2014 01:00
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
Включен. Таки завел. Внезапно оказалось, что CS aka SSEL распаяна не на SSEL SSP0, а рядом на какую-то левую ногу. Приходится дергать ногой самому. Не знаю как на это смотрит FreeRTOS, наверно так делать нельзя, но работает. По крайней мере флеха отдает правильный ID. И что-то читает. Завтра считаю флеху на программаторе и сравню с тем, что читается.


17 Oct 2014 12:32
Profile
Novelist

Joined: 24 Dec 2004 13:58
Posts: 39
Location: UK
Reply with quote
Post 
S в SSEL означает Slave. В master mode CS закатывается вручную с любого доступного I/O контакта. В PIC то-же самое.


17 Oct 2014 12:36
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
Век живи - век учись ;)


17 Oct 2014 12:39
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 10 posts ] 

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.