|
Помогите запустить первую програмку, ARM7-LPC2148 |
|
|
|
Jan 5 2010, 19:55
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 22-02-09
Из: Минск
Пользователь №: 45 206

|
Написал первую программку - некоторые из светодиодов зажечь,некоторые потушить. В протеусе работает (там использую LPC2138), на отладочной не хочет. Использую Keil uVision 4.00a, программатор MT-Link v6.0,дрова-Segger. Шить прямо из Keil не получается, пишет, что этот программатор разработан только для IAR. Шью HEX через Segger JFlash. При попытке прошить пишет, что HEX содержит неверную контрольную сумму и предлагает вставить правильную. При использовании готового HEX демопрограммы к отлад плате, тоже ругается на CRC, но после исправления шьет и все работает. Моя же программа шьется,но не работает. Не могу сам разобраться с чем проблемы: с кодом или с прошиванием. Подскажите, что тут может быть не так. На плате: контроллер LPC2148, кварц-12МГц,светодиоды подключены к P0.8-P0.15, зажигаюстя нулями. Текст програмки: CODE #include <LPC214X.H> #define LEDS_MSK 0x0000FF00 /* P0.8..15 */ #define LED1 0x00000100 /* P0.8 */ #define LED2 0x00000200 /* P0.9 */ #define LED3 0x00000400 /* P0.10 */ #define LED4 0x00000800 /* P0.11 */
int main (void) { PINSEL1 = 0x40004000; // P0.23 - VBus(?),P0.31- UP_LED(?),остальные-GPIO
IO0DIR = LEDS_MSK; // пины светодиодов - на вых IO0CLR = LEDS_MSK; // все зажечь (подать 0) IO0SET = LED2; // 2-й потушить (подать 1) for(;;); }
Конфигурация:
|
|
|
|
|
 |
Ответов
|
Jan 7 2010, 10:02
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 22-02-09
Из: Минск
Пользователь №: 45 206

|
Цитата(Сергей Борщ @ Jan 7 2010, 10:21)  А выложите-ка сюда листинг (в запакованном, разумеется, виде). Не работал с Кейлом, но если память не изменяет - ему надо было в проект кроме собственно исходника добавлять еще и стартап-файл. Тут проекты для Keil4 и для IAR5.40(не работает даже в протеусе) и схема в протеусе. Стартап для Keil - statup.s (его настройка в 1-м посте на скрине), в IAR не разобрался где этот стартап и как его настраивать. Если поможете с IAR - еще лучше. Заранее благодарю за помощь. Цитата(Student Pupkin @ Jan 7 2010, 03:55)  Возможно оффтоп... Тут пробегала тема, как у мт-линка обновить прошивку, чтобы его кейл признал.  Перешивать не могу в любом случае: это все добро у меня во временном пользовании. Буду мучаться с тем, что есть.
|
|
|
|
|
Jan 7 2010, 11:31
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(imiron13 @ Jan 7 2010, 13:02)  для IAR5.40(не работает даже в протеусе)... Если поможете с IAR - еще лучше. В ИАР-е стартап прикручивать не надо, он формируется сам, в смысле там имеется шаблон, как грица на все случаи жизни, так что если в проекте нет файла cstartup.s (), то автоматически вставляется этот шаблон (но невидимо для вас  ). Не хватает вам файла *.icf - конфигурационного файла для линкера (linker, компоновщика). Я вот файл прицепил, но взял из IAR\...\arm\examples\NXP\LPC214x\...
LPC2148_flash.rar ( 743 байт )
Кол-во скачиваний: 86В опциях проекта в разделе "linker" ставьте галку "Override default" и укажите путь к файлу *.icf. Должно...
|
|
|
|
|
Jan 7 2010, 11:41
|

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

|
Цитата(Student Pupkin @ Jan 7 2010, 14:31)  В ИАР-е стартап прикручивать не надо, он формируется сам, в смысле там имеется шаблон, как грица на все случаи жизни, так что если в проекте нет файла cstartup.s (), то автоматически вставляется этот шаблон (но невидимо для вас  ). Ой какая пурга  . Да откомпилированный среднепотолочный startup просто лежит с каждой из библиотек. Вот и все - никаких "шаблонов", никаких "невидимок". Если в проекте есть, как и из чего сделать нужный объектник, то тогда он линкуется вместо готового библиотечного. Совершенно обычное поведение ДЛЯ ЛЮБЫХ библиотечных функций и ЛЮБЫХ компиляторов.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 7 2010, 15:32
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 22-02-09
Из: Минск
Пользователь №: 45 206

|
Спасибо всем большое за помощь - самому тяжело разбираться. Пошагал отладчиком: уходил на обработку исключения после команды PUSH, получается не было памяти для стека. Последовал советам, вставил файл *.icf - и все заработало! Ну,как я понял,в *.icf описываются доступные области памяти, размеры стеков, а как можно настроить PLL,MAM в IAR?
|
|
|
|
|
Jan 7 2010, 21:45
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760

|
Цитата(imiron13 @ Jan 7 2010, 18:32)  Ну,как я понял,в *.icf описываются доступные области памяти, размеры стеков, Все примеры в iar-е для LPC2xx снабжаются двумя icf-файлами (из примеров их и воруйте  ): 1) для заливки программы во FLASH (xxx_FLASH.icf); 2) для заливки программы из ОЗУ (xxx_RAM.icf) - этот вариант чисто для отладки. Для использования такого варианта в примерах всегда еще есть mac-файл - RAM.mac (скрипт для отладчика по предварительному чтению-записи каких-либо участков памяти, SFR, и др. - в данном случае выполняется ремап таблицы векторов исключений на начало ОЗУ). Если используете вариант отладки в ОЗУ, то этот mac-файл нужно пристегнуть в опциях debugger. Цитата(imiron13 @ Jan 7 2010, 18:32)  а как можно настроить PLL,MAM в IAR? Графического "визард-мастера"  у иара нет. По мне так для начальных экспериментов запускать их незачем - просто включите MainOsc и переключитесь на него, а MAM на такой частоте не нужен (а также не нужен, если отладку в ОЗУ выбрали).
|
|
|
|
Сообщений в этой теме
imiron13 Помогите запустить первую програмку Jan 5 2010, 19:55 toweroff И что Вы стараетесь получить? Протеус с одним ядро... Jan 5 2010, 23:33 imiron13 Цитата(toweroff @ Jan 6 2010, 01:33) И чт... Jan 6 2010, 09:08 Student Pupkin Возможно оффтоп... Тут пробегала тема, как у мт-ли... Jan 7 2010, 01:55  Сергей Борщ Цитата(imiron13 @ Jan 7 2010, 12:02) Тут ... Jan 7 2010, 11:04     toweroff Цитата(imiron13 @ Jan 7 2010, 18:32) а ка... Jan 7 2010, 16:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|