|
|
  |
LPC 2366 проблема в ISP, Не получается перезаписать начальные адреса Flash |
|
|
|
Mar 26 2015, 23:16
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635

|
Цитата(jcxz @ Mar 26 2015, 23:17)  Ну что-ж - вполне правдоподобно. Значит ТС может сделать то же самое. Поподробнее, если можно....пока что не понимаю как конкретно пошагово это делать...какие команды и т.д.
|
|
|
|
|
Mar 27 2015, 00:20
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
загрузить в ОЗУ, например по адресу 0x40000200 24 байта (0x0C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x0E, 0xE0, 0x81, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0xC0, 0x1F, 0xE0,) Потом дать бутлоадеру команду "G 1073742336 A" код этот не очень "красивый", взят ЕМНИП снифером из первого филисовского программатора. Код LDR R0, =0xE01FC040 MOV R1, #1 STR R1, [R0] ORR LR, R1, LR BX LR но тут оптимизации не к чему  Работает вроде на всех LPC2xxx.
|
|
|
|
|
Mar 29 2015, 20:54
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(jcxz @ Mar 28 2015, 07:34)  На всех, у которых ROM-код исполняется в Thumb. :-)
ЗЫ: Его можно оптимизировать по размеру, переписав в Thumb. :-) А у всех LPC ARM7 boot код в THUMB, а что IAP (который часть boot rom) в THUMB - так явно в даташите указано. Инструкция ORR LR, R1, LR лишняя, если конечно в какой то версии бутлоадера не было баги в реализации команды G. А так можно смело в THUMB запускать, кстати удобно тесты железа запускать еще до прошивки.
|
|
|
|
|
Apr 2 2015, 12:13
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635

|
Спасибо всем огромное! В очередной раз форумчане выручают начинающего чайника!)
|
|
|
|
|
Apr 8 2015, 07:41
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635

|
Думал что на этом эпопея закончится, ан нет...
Новый виток: перед тем как шиться выполняю из оперативной памяти код, который скинул форумчанин KRS, получаю всю память в FF как и желаю, пишу первый блок в 256 байт, он записывается как положено, потом дописываю все остальное (всего чуть больше килобайта). Записываемая программа должна моргать диодом с периодом в 1-2 секунды. Что происходит по окончании прошивки: диод начинает моргать циклично, но период увеличен раз так в 10-20, и после выключения-включения питания первые 64 байта опять переписываются как им удобно и код перестает работать.
Что здесь можно предпринять?
|
|
|
|
|
Apr 8 2015, 08:04
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635

|
Цитата(Golikov A. @ Apr 8 2015, 11:02)  Надо отпустить ногу бута. Порт 2.10? Отпущен.
|
|
|
|
|
Apr 8 2015, 08:12
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635

|
Цитата(KRS @ Apr 8 2015, 10:45)  Именно переписываются? Или все таки это бутлоадер туда отмаплен?
Контрольная сумма векторов прерываний посчитана? Я думал, что в готовой прошивке все должно быть посчитано.... Вот что в даташите написано по этому поводу
Как в таком случае самому подсчитать и записать куда надо эту контрольную сумму?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|