Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите пожалуйста с первой программой для LPC2142
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Фролов Владимир
Доброго всем времени суток. Помогите написать програаму для LPC2142. Сделал самодельную отладочную плату для данного мк и хочу помигать светодиодом для начала. Написал программу прошил не работает. Думал с железом накосячил залез в протеус не нашёл там LPC2142 а нашёл LPC2138 (какая разница если светодиодом помигать) написал вот такую программу программу(для LPC2142 программа такая же тока заголовочный файл другой естественно):
CODE
#include <NXP/ioLPC2138.H>            

void wait (void)  
{                        
  int  d;
  for (d = 0; d < 100000; d++);      
}

void main (void)
{
  PINSEL0=0;                  
  IO0DIR=0xFFFFFFFF;
  IO0SET=0xFFFFFFFF;
  while (1)  
  {
      IO0CLR=0xFFFFFFFF;                        
      wait();                            
      IO0SET=0xFFFFFFFF;      
      wait();                    
   }
}

Пишу в IDE IAR(оч понравилась среда, когда для AVR писал тока в ней и сидел). Настройки проетка следующие:
1) категория General Options
вкладка Taget выбран девайс LPC2138
endian mode: littele
2) категория С/С++ compiler
вкладка code : ARM
вкладка optimization: non
3) категория output converter
output format intel hex.
Все остальные настройки по умолчанию. Не пойму где косяк помогите
пожалуйтса. Может косяк в настройках может мелочь какае-то не пойму. Помогите пожалуйста, а то уже достаточно долго
над простыми вещами сижу на результата 0. Всем откликнувшимся за рание спасибо.
zltigo
Про программу пока не буду, а для начала ответьте на вопросы -
1. Кто в Вашей прошивке выставлял контрольную сумму векторов для обеспечения запуска программы загрузчиком? Вы сами? Прошивальщик? Линкер просили?
2. На каких адресах сказали линкеру размещать Вашу программу?
3. Что значит "не работает"?

Фролов Владимир
zltigo
1) Про контрольную сумму векторов я забыл, и я не знаю как её выставлять. Расскажите пожалуйста я в АРМах совсем чайник.
2) Я не указывал в каких адресах размещать программу и тоже не знаю как указывать.
3) Ну я так понял раз прога пользователя не запустилась значит и дёргать ногами контроллер не будет.
Это по поводу "не работает".
Цитата
Про программу пока не буду
zltigo я так понимаю Вы хотите сказать что нет настройки МАМ
нет настройки модулей ПЛЛ (их в LPC2142 две штуки один для процессора другой для ЮЗБи) так я смотрел в юзерс мэньюале что после рестарта эти модули отключены.
zltigo раскажите пожалуйста как все правильно сделать и в какой последовательности.
zltigo
QUOTE (Фролов Владимир @ Aug 13 2010, 20:20) *
zltigo я так понимаю Вы хотите сказать что нет настройки МАМ

Разумеется нет. Это для начала не обязательно.
Ответы на вопросы есть в документации. Я задал наводящие вопросы. На форуме, Вы тоже далеко не первый начинаете с "не работает" - можно просто почитать.
По поводу "не работает" симптомы этой не работы не описали sad.gif.
QUOTE
раскажите пожалуйста как все правильно сделать и в какой последовательности.

Смутно представляю выставление "галочек" в IDE и представлять не собираюсь, а командная строка, скрипты линкера, маке, боюсь Вам будут неинтересны после "DE IAR(оч понравилась среда, когда для AVR писал тока в ней и сидел)".
Посему только наводящие вопросы по мотивам типичных ошибок.
Фролов Владимир
Я понял что Вы мне задали наводящие вопросы. zltigo ответы на Ваши наводящие вопросы в юзер маньюале есть или в каком-то другом документе?
А по поводу не работает так я хотел светодиодом помигать прошил включил и светодиод не мигает, из ваших слов я понял что не выполняется пользовательская программа поэтому светодиод не мигает. Вот что я имел под словом не работает.
zltigo
QUOTE (Фролов Владимир @ Aug 13 2010, 21:25) *
А по поводу не работает так я хотел светодиодом помигать прошил включил и светодиод не мигает

А что делает? Что на выходах? Третье состояние? Или какой уровень? Осциллографом смотрели?
QUOTE
, из ваших слов я понял что не выполняется пользовательская программа поэтому светодиод не мигает.

Только, как один из варианов.
Тут на форуме есть AT200 терминал. Если грузите по RS232, то, как минимум, он умеет самостоятельно править сумму при заливке, впрочем, как и загружать в RAM и запускать.
DpInRock
Цитата
_vector_0x14: DCD 0 ; Here check sum.


Если в стартапе будет вот такая строчка (как раз на месте этого вектора), то ИАР сам туда занесет контрольную сумму.
Фролов Владимир
zltigo
Цитата
А что делает? Что на выходах? Третье состояние? Или какой уровень? Осциллографом смотрели?
На всех ногах порта 0 напряжение 2В. Прошил потом прошивку чтобы установить все ноги порта в уровень лог 0. и по прежнему на всех ногах порта 0 напряжение 2В.
Честно говоря я уже совсем запутался.
sonycman
Цитата(Фролов Владимир @ Aug 14 2010, 22:21) *
zltigo На всех ногах порта 0 напряжение 2В. Прошил потом прошивку чтобы установить все ноги порта в уровень лог 0. и по прежнему на всех ногах порта 0 напряжение 2В.
Честно говоря я уже совсем запутался.

Странно, откуда 2 вольта взялось? Питание какое?
Схему платы можете привести?
zltigo
QUOTE (Фролов Владимир @ Aug 14 2010, 20:21) *
рошил потом прошивку чтобы установить все ноги порта в уровень лог 0. и по прежнему на всех ногах порта 0 напряжение 2В.

Значит программа не запускается и порты по умолчанию - входы. Разбирайтесь с адресами прошивки, и контрольной суммой векторов. Уже писал sad.gif.
GAS
Цитата(Фролов Владимир @ Aug 13 2010, 21:13) *
хочу помигать светодиодом для начала. Написал программу прошил не работает.
Ну если все так плохо попробуйте помигать так http://kazus.ru/forums/showthread.php?t=14719
Фролов Владимир
zltigo прав. надо разбираться с настройками линковщика и командным файлом.
Но шо то ничего пока не получается.
Фролов Владимир
С адресами начальными и конечными адресами ОЗУ разобрался по карте системной памяти.
Категория линкер, вкладка конфиг поставить галочку перезапись файла конфигуразии линкера.
Кнопка едит и на вкладке границы памяти с этим разобрался. Непонятно какие адреса указывать на вкладке
stack/heap size. И ещё linker configuaration file имеет расщирение .icf. В книге Редькина (знаю её многие критикуют, но пока по ней учусь) linker configuaration file имеет расщирение .xcl (ну это понятно версия IAR у меня другая) но суть не в этом, а где те все настройки которые приводит Редькин в своей книге? Вопрос про контролдьную сумму векторов остаётся открытым.
zltigo
QUOTE (Фролов Владимир @ Aug 16 2010, 20:05) *
В книге Редькина ...

Это диагноз sad.gif
QUOTE
а где те все настройки которые приводит Редькин в своей книге?

Без понятия, но в комплекте IAR есть внятный документ по линкеру. Вот этот его просто и отредактировать, если надо. Но для начала и дефолтовый годится - главное не испортить галочками.
QUOTE
Вопрос про контролдьную сумму векторов остаётся открытым.

Я уже называл AT200 котрый при загрузке поправит, если надо. В противном случае читать документацию. V5 в отличии от V4 какие-то утилиты были, вроде. Я не пользуюсь, тем более они у меня в универсальном загрузчике.


Коляй
Ну как, удалось помигать портом или пока забросили? А в симуляторе то работает, в ИАР-овском? Тоже вот присматриваюсь к арм. Но ИАР-а с меня хватит. Поставил Кейл. В симах всё мигает запросто, железо пока не купил ещё.
toweroff
Цитата(zltigo @ Aug 16 2010, 23:20) *
главное не испортить галочками.

кто-то говорил: галочки -- не пользуюсь smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.