реклама на сайте
подробности

 
 
> LPC 2366 проблема в ISP, Не получается перезаписать начальные адреса Flash
lavrik
сообщение Mar 25 2015, 12:38
Сообщение #1


Участник
*

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



Здравствуйте форумчане! Прошу помочь, т.к. уже не знаю что делать...

Пишу внутрисистемный (ISP) программатор для LPC 2366, и столкнулся с тем, что в процессе прошивки не получается стереть полностью весь флэш, адреса с 0x00 по 0x40 зарезервированы под вектора прерываний. При форматировании всего флэша посредством ISP-команды "E 0 14\r\n" в этом диапазоне остается что-то, все остальное как и положено - FF.

Согласно hex-файлу прошивки, которую я пытаюсь туда записать, в этом диапазоне должны находиться определённые данные, которые туда не записываются.

Вот то что надо записать в формате Intel HEX, адрес предшествует данным.
Прикрепленное изображение


Вот как выглядит флэш после полного форматирования:
Прикрепленное изображение


Вот что я пытаюсь записать из оперативной памяти во флэш по адресу 0x0:
Прикрепленное изображение


Во флэше по указанному адресу это появляется в следующем искаженном виде:
Прикрепленное изображение



Что скажете?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lavrik
сообщение Apr 8 2015, 07:41
Сообщение #2


Участник
*

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



Думал что на этом эпопея закончится, ан нет...

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

Что здесь можно предпринять?
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 8 2015, 07:45
Сообщение #3


Профессионал
*****

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



Цитата(lavrik @ Apr 8 2015, 10:41) *
и после выключения-включения питания первые 64 байта опять переписываются как им удобно и код перестает работать.

Именно переписываются? Или все таки это бутлоадер туда отмаплен?

Контрольная сумма векторов прерываний посчитана?

Go to the top of the page
 
+Quote Post
lavrik
сообщение Apr 8 2015, 08:12
Сообщение #4


Участник
*

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



Цитата(KRS @ Apr 8 2015, 10:45) *
Именно переписываются? Или все таки это бутлоадер туда отмаплен?

Контрольная сумма векторов прерываний посчитана?


Я думал, что в готовой прошивке все должно быть посчитано....

Вот что в даташите написано по этому поводу
Прикрепленное изображение


Как в таком случае самому подсчитать и записать куда надо эту контрольную сумму?
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 8 2015, 08:32
Сообщение #5


Профессионал
*****

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



При записи по 0 адресу:
Код
        uint32_t s;
        s=((uint32_t*)buf)[0]+
            ((uint32_t*)buf)[1]+
            ((uint32_t*)buf)[2]+
            ((uint32_t*)buf)[3]+
            ((uint32_t*)buf)[4]+
            //((uint32_t*)buf)[5]+ !!skip!!
            ((uint32_t*)buf)[6]+
            ((uint32_t*)buf)[7];
        ((uint32_t*)buf)[5]=-s;
Go to the top of the page
 
+Quote Post
lavrik
сообщение Apr 8 2015, 08:49
Сообщение #6


Участник
*

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



Цитата(KRS @ Apr 8 2015, 11:32) *
При записи по 0 адресу:
Код
        uint32_t s;
        s=((uint32_t*)buf)[0]+
            ((uint32_t*)buf)[1]+
            ((uint32_t*)buf)[2]+
            ((uint32_t*)buf)[3]+
            ((uint32_t*)buf)[4]+
            //((uint32_t*)buf)[5]+ !!skip!!
            ((uint32_t*)buf)[6]+
            ((uint32_t*)buf)[7];
        ((uint32_t*)buf)[5]=-s;


пока что не очень понятно....
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 8 2015, 08:58
Сообщение #7


Профессионал
*****

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



Цитата(lavrik @ Apr 8 2015, 11:49) *
пока что не очень понятно....


Я не знаю "архитектуру" Вашего программатора, но логично предположить...
что есть функция которая записывает блок флеша, на вход подаются данные и адрес, так вот если адрес = 0, buf - указатель на данные надо перед отправкой данных вставить этот код.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- lavrik   LPC 2366 проблема в ISP   Mar 25 2015, 12:38
- - Golikov A.   Уже было тут недавно про не стираемое начало флеши...   Mar 25 2015, 13:57
- - KRS   Цитата(lavrik @ Mar 25 2015, 15:38) Пишу ...   Mar 25 2015, 16:03
- - Golikov A.   ну я так понимаю что он мапит бут ром в начало фле...   Mar 25 2015, 17:02
|- - KRS   Цитата(Golikov A. @ Mar 25 2015, 20:02) н...   Mar 25 2015, 18:13
|- - jcxz   Цитата(KRS @ Mar 26 2015, 00:13) Но это в...   Mar 26 2015, 05:44
|- - KRS   Цитата(jcxz @ Mar 26 2015, 08:44) Что-то ...   Mar 26 2015, 18:57
|- - KRS   Цитата(jcxz @ Mar 26 2015, 08:44) Это-же ...   Mar 26 2015, 20:10
|- - jcxz   Цитата(KRS @ Mar 27 2015, 02:10) Все прог...   Mar 26 2015, 20:17
|- - lavrik   Цитата(jcxz @ Mar 26 2015, 23:17) Ну что-...   Mar 26 2015, 23:16
- - Golikov A.   ну не знаю... мне казалось бут пин зажал, там и ре...   Mar 25 2015, 19:24
- - Golikov A.   Вот и мне так кажется... Единственное что я сейча...   Mar 26 2015, 05:56
|- - Сергей Борщ   Цитата(Golikov A. @ Mar 26 2015, 07:56) Е...   Mar 26 2015, 07:42
|- - Палыч   ТС знает ли о существовании CRP (Code Read Protect...   Mar 26 2015, 07:54
|- - lavrik   Цитата(Палыч @ Mar 26 2015, 10:54) ТС зна...   Mar 26 2015, 11:06
- - Golikov A.   ЦитатаBlank check Не что-то вы обманываете UM1060...   Mar 26 2015, 09:51
|- - Сергей Борщ   Цитата(Golikov A. @ Mar 26 2015, 11:51) Н...   Mar 26 2015, 10:46
- - Golikov A.   чудно однако.... ведь FlashMagic реально сначала ...   Mar 26 2015, 11:07
- - KRS   Кроме того если нужно ускорить прошивку. можно заг...   Mar 26 2015, 20:32
- - KRS   загрузить в ОЗУ, например по адресу 0x40000200 24...   Mar 27 2015, 00:20
|- - jcxz   Цитата(KRS @ Mar 27 2015, 06:20) но тут о...   Mar 28 2015, 04:34
|- - KRS   Цитата(jcxz @ Mar 28 2015, 07:34) На всех...   Mar 29 2015, 20:54
- - lavrik   Спасибо всем огромное! В очередной раз форумча...   Apr 2 2015, 12:13
- - Golikov A.   Надо отпустить ногу бута.   Apr 8 2015, 08:02
|- - lavrik   Цитата(Golikov A. @ Apr 8 2015, 11:02) На...   Apr 8 2015, 08:04
- - KRS   Если контрольная сумма векторов прерываний не посч...   Apr 8 2015, 08:11
- - Golikov A.   а записать ее надо в серединку таблицы прерываний ...   Apr 8 2015, 08:35
- - lavrik   Там же возможна запись из ОЗУ во Flash только блок...   Apr 8 2015, 09:04
|- - KRS   Цитата(lavrik @ Apr 8 2015, 12:04) Там же...   Apr 8 2015, 09:11
|- - jcxz   Цитата(lavrik @ Apr 8 2015, 15:04) Там же...   Apr 8 2015, 09:38
|- - KRS   Цитата(jcxz @ Apr 8 2015, 12:38) В LPC17x...   Apr 8 2015, 09:41
|- - jcxz   Цитата(KRS @ Apr 8 2015, 15:41) Но это то...   Apr 8 2015, 09:51
|- - den_po   Цитата(jcxz @ Apr 8 2015, 14:51) Можно. Е...   Apr 8 2015, 12:35
||- - jcxz   Цитата(den_po @ Apr 8 2015, 18:35) Одно в...   Apr 8 2015, 16:30
||- - den_po   Цитата(jcxz @ Apr 8 2015, 21:30) Писали н...   Apr 9 2015, 03:38
||- - jcxz   Цитата(den_po @ Apr 9 2015, 09:38) Нет, т...   Apr 9 2015, 09:42
|- - KRS   Цитата(jcxz @ Apr 8 2015, 12:51) Можно. Е...   Apr 8 2015, 19:41
|- - jcxz   Цитата(KRS @ Apr 9 2015, 01:41) Только во...   Apr 9 2015, 02:26
- - Golikov A.   В вашей прошивке в начале лежит таблица прерываний...   Apr 8 2015, 09:37
|- - lavrik   Цитата(Golikov A. @ Apr 8 2015, 12:37) В ...   Apr 9 2015, 10:35
|- - KRS   Цитата(lavrik @ Apr 9 2015, 13:35) То ест...   Apr 9 2015, 10:49
|- - lavrik   Цитата(KRS @ Apr 9 2015, 13:49) там выдел...   Apr 9 2015, 11:09
|- - KRS   Цитата(lavrik @ Apr 9 2015, 14:09) В моем...   Apr 9 2015, 13:42
- - Golikov A.   да не в размере дело, а в том что надо поправить 4...   Apr 8 2015, 09:41
- - Golikov A.   так же как нельзя писать в не стертую флэшь (если ...   Apr 8 2015, 09:43
- - Golikov A.   на то место куда уже писали нельзя, хоть как кратн...   Apr 8 2015, 10:36
- - Сергей Борщ   А я заставил линкер gcc считать контрольную сумму....   Apr 9 2015, 05:13
|- - KRS   Цитата(Сергей Борщ @ Apr 9 2015, 08:13) А...   Apr 9 2015, 09:48
|- - Сергей Борщ   Цитата(KRS @ Apr 9 2015, 11:48) А у Вас н...   Apr 9 2015, 11:02
|- - Сергей Борщ   Цитата(Сергей Борщ @ Apr 9 2015, 13:02) к...   Apr 9 2015, 11:19
||- - lavrik   Цитата(Сергей Борщ @ Apr 9 2015, 14:19) ...   Apr 9 2015, 11:37
|- - jcxz   Цитата(Сергей Борщ @ Apr 9 2015, 17:02) А...   Apr 10 2015, 01:51
|- - Сергей Борщ   Цитата(jcxz @ Apr 10 2015, 03:51) но никт...   Apr 10 2015, 05:09
|- - lavrik   Цитата(Сергей Борщ @ Apr 10 2015, 08:09) ...   Apr 10 2015, 06:23
|- - jcxz   Цитата(Сергей Борщ @ Apr 10 2015, 11:09) ...   Apr 10 2015, 09:00
|- - Сергей Борщ   Цитата(jcxz @ Apr 10 2015, 11:00) Использ...   Apr 10 2015, 09:16
- - lavrik   Появился сдвиг! Я сделал следующее: прошил чер...   Apr 9 2015, 12:52
- - Obam   Так как написано в User Manual: "…Criterion ...   Apr 9 2015, 13:20
- - Golikov A.   надо сложить не 5 значений! а всю таблицу вект...   Apr 9 2015, 16:09
|- - lavrik   Цитата(Golikov A. @ Apr 9 2015, 19:09) на...   Apr 9 2015, 20:25
|- - KRS   Цитата(Golikov A. @ Apr 9 2015, 19:09) а ...   Apr 10 2015, 13:01
- - Golikov A.   Цитатаоткуда ж я знал что там Little Endian... sad...   Apr 10 2015, 04:59
- - IgorKossak   Когда я слышу фразу: "... каждый такт на счет...   Apr 10 2015, 09:30
|- - jcxz   Цитата(IgorKossak @ Apr 10 2015, 15:30) К...   Apr 10 2015, 09:38
- - Golikov A.   под инвертировать имел ввиду, конечно, инверсию зн...   Apr 10 2015, 15:33


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 09:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01502 секунд с 7
ELECTRONIX ©2004-2016