Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как заставить LPC2138 работать без отладчика?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
kilohm
Начал осваивать ARM7. Купил ARM-JTAG фирмы Olimex и плату с LPC2138 фирмы Phyton. Работаю с Keil + H-JTAG. Простейшая программа (вкл/выкл светодиод по кнопке) с отладчиком работает нормально. Как запустить программу без отладчика? Отсоединяю разъем JTAG, снимаю перемычку DBG, которая удерживает ноль на контакте RTCK, включаю питание -- абсолютно ничего, жму сброс -- ничего. Перешел на ассемблер -- засветил светодиод. Та же картина. Из Keil программа запускается, а по сбросу светодиод гаснет.
Вот программа.
CODE

IODIR0 EQU 0xE0028008
IOSET0 EQU 0xE0028004
IOCLR0 EQU 0xE002800C

AREA RESET, CODE
ENTRY
ARM

MOV R0, #0x80
LDR R1, =IODIR0
STR R0, [R1]

MOV R0, #0x80
LDR R1, =IOCLR0
STR R0, [R1]

Loop
B Loop

END
zltigo
Прочитать в документации про его bootloader и конкретнее про контрольную сумму векторов.
A. Fig Lee
Цитата(zltigo @ Jan 31 2009, 15:08) *
Прочитать в документации про его bootloader и конкретнее про контрольную сумму векторов.


у меня и в дебаге в бутлоадер вываливается, очевидно - изза неправильной суммы векторов - еще не проверил.
Так что ето могет быть и не вариант.
kilohm
Спасибо! Кажется заработало. А какого черта Keil на заполняет этот вектор контрольной суммой!? У него в стандартном Startup.s по адресу 0x14 в явном виде NOP прошивается. Мне что, так и вычислять всякий раз значение этой контрольной суммы вручную? Это вообще нормально? Так все делают?
Теперь начало программы выглядит так:



CODE

AREA RESET, CODE
ENTRY
ARM

B START
SPACE 16
DCD 0x15FFFFFA
SPACE 8

START
...
zltigo
Цитата(kilohm @ Feb 1 2009, 17:40) *
Так все делают?


Неа, "у всех" загрузчик правит сумму. У некоторых линкеров тоже соответствующая дополнительная опция есть. Ну а вообще в реальности таблица векторов зачастую просто не меняется.
kilohm
Тогда вопросы:
1) Что значит "загрузчик"? По-моему "загрузчиком" следует называть Boot Loader, т.е. код, зашиваемый при изготовлении. Так он не правит сумму, а проверяет ее.
2) В самом деле же в Startup.s стоит NOP на этом месте! "Все" его не используют что ли? Свой что-ли пишут?
3) В Додековской книге Мартина процедура ручной правки контрольной суммы подробно описана. Я из этого сделал вывод, что это норально. Что скажите?
4) Где в Keil эта опция? Я его с официального сайта, думаю, не раньше декабря скачал. То есть свеженькая программа.
5) Если серьезно, как вы относитесь к этому комплекту Keil + H-JTAG + Wiggler от Olimex. Удачное решение или нет?
zltigo
Цитата(kilohm @ Feb 1 2009, 18:58) *
По-моему "загрузчиком" следует называть Boot Loader


Как минимум в процессе участвует и софт находящийся не только в контроллере.

Цитата
5) Если серьезно, как вы относитесь к этому комплекту Keil + H-JTAG + Wiggler от Olimex. Удачное решение или нет?
Огрызок счасться ввиде Wiggler давно уже давно неразумно использовать ни при каких обстоятельствах. Keil по самому факту принажлежости ARM всегда,полагаю, будет входить в тройку лидеров для ARM платформы. 
kilohm
В чем недостаток Wiggler? А что использовать? Отладчики от Keil или IAR? Они стоят по крайней мере в 10 раз дороже. Вот вам и "обстоятельства".
aaarrr
Цитата(kilohm @ Feb 1 2009, 21:34) *
В чем недостаток Wiggler? А что использовать? Отладчики от Keil или IAR? Они стоят по крайней мере в 10 раз дороже. Вот вам и "обстоятельства".

Десять раз - это $5 и $50, что уже смешно. За пять получаете по сути моток проводов для LPT (которого в нормальных компьютерах/ноутах уже нет) с кучей проблем в нагрузку.
kilohm
1) Нет, ну за $5 можно только кабель для LPT купить. А что это за отладчик за $50? По-моему, U-LINK около $300 стоит.
2) Да объясните мне о каких проблемах речь. Чем плох этот Wiggler?
zltigo
Цитата(kilohm @ Feb 2 2009, 01:22) *
1) Нет, ну за $5 можно только кабель для LPT купить. А что это за отладчик за $50? По-моему, U-LINK около $300 стоит.



А сколько стоит Wiggler smile.gif? Вы купили КЛОН Wiggler-a за пару десятков долларов. А КЛОНы U-Link/MT-Link/... соответственно тоже стоят не 250, а 50-60.
A. Fig Lee
Цитата(kilohm @ Feb 1 2009, 09:40) *
Спасибо! Кажется заработало. А какого черта Keil на заполняет этот вектор контрольной суммой!? У него в стандартном Startup.s по адресу 0x14 в явном виде NOP прошивается. Мне что, так и вычислять всякий раз значение этой контрольной суммы вручную? Это вообще нормально? Так все делают?


в openocd можно сказать чтоб сам подсчитывал:

Код
flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 14765 [b]calc_checksum[/b]
aaarrr
Цитата(kilohm @ Feb 2 2009, 01:22) *
Чем плох этот Wiggler?

Будете подбирать скорость JTAG, длину LPT-кабеля и положение звезд на небе, чтобы таргет не отваливался каждые 30 секунд. Возможно, будет и не так плохо, но не стоит превращать отладку в дополнительный геморрой.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.