Перейти к содержанию
    

LPC23xx - записать во флеш "из программы"

Поскольку Вы документацию НЕ читаете, то сообщаю - снести штатный загрузчик Вам не удастся - для этого надо знать, как это сделать :)

 

Отвечаю как пользователю:

 

Мой опыт говорит об обратном. Чтобы что-то сломать - не обязательно знать, как это работает. И очень часто, даже слишком часто, приходилось слышать: "этого не может быть, потому что не может быть никогда", причем применительно к тематике этого форума, а не "вообще".

 

А что касается документации - раз уж вы документацию читаете - ткните носом, где в документации описан алгоритм определения сектора для записи своих данных.

 

Вам надо только константы заменить, номера страниц и т.п.

 

Так вот это-то как раз и непонятно - вот у меня есть список секторов. Где-то в них записана программа с данными, которая грузится при включении питания. Как мне определить - что занято, что свободно ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В большинстве кристаллов (особенно более поздних) загрузчик прошит в ROM памяти, и не может быть стерт/заменен пользователем.

Может. И совсем не через JTAG. У производителя лежат прошивки ВООТ в комплекте с загрузчиком, который снимает дополнительную защиту с сектора. Для овладения сокровенными знаниями, можете дизассемблировать либо этот загрузчик, либо официальную библиотеку для управления дополнительной защитой.

 

 

 

А что касается документации - раз уж вы документацию читаете - ткните носом, где в документации описан алгоритм определения сектора для записи своих данных.

Вы хоть сами поняли, что спросить хотите?

Так вот это-то как раз и непонятно - вот у меня есть список секторов. Где-то в них записана программа с данными, которая грузится при включении питания. Как мне определить - что занято, что свободно ?

Все свободны, ибо боотсектор Вам не доступен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы хоть сами поняли, что спросить хотите?

 

Все свободны, ибо боотсектор Вам не доступен.

Если все свободны, то куда девается программа, которую я прошиваю ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если все свободны, то куда девается программа, которую я прошиваю ?

А вы код свой выложите, записи во флеш.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы код свой выложите, записи во флеш.

Да я еще ничего не писал, я просто спрашиваю, у меня в голове никак не уложится.

Я пишу на писюке программу, заливаю ее во флеш, она во флеше занимает какие-то сектора. Теперь я изнутри хочу записать во флеш какие-то параметры. Мне предлагают писать в один из 11 для 128К или 28 для 512К секторов. Как мне не убить свою программу ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теперь я изнутри хочу записать во флеш какие-то параметры. Мне предлагают писать в один из 11 для 128К или 28 для 512К секторов. Как мне не убить свою программу ?
:bb-offtopic: И этот человек, который не знает, в какие адреса попала его программа, возмущается, что вопрос перенесли в ветку для начинающих. Позабавило.

1)Прочитайте документацию на ваш линкер. От корки до корки.

2)Попросите линкер сгенерировать вам карту памяти (.map). Медитируйте над ней.

3)Попросите линкер зарезервировать какой-то из сегментов для ваших данных. Он будет следить за тем, чтобы в этот сегмент не попал никакой код или другие даные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если все свободны, то куда девается программа, которую я прошиваю ?

Про "Вашу" спрашиваете у своей программы, где она кончается. И не пеняйте на Фирму NXP - она о Вашем творчестве не знает ничего. Общий подход к делу - заводите некий сегмент с лежащей в нем переменой и линкуете его последним. По адресу этой переменной и узнаете где кончается Ваша программа. Вопрос обсуждался многократно, особенно когда начинают писать свои загрузчики. У некоторых компиляторов-линкеров такого типа механизм встроен на халяву. В поиск.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про "Вашу" спрашиваете у своей программы, где она кончается. И не пеняйте на Фирму NXP - она о Вашем творчестве не знает ничего. Общий подход к делу - заводите некий сегмент с лежащей в нем переменой и линкуете его последним. По адресу этой переменной и узнаете где кончается Ваша программа. Вопрос обсуждался многократно, особенно когда начинают писать свои загрузчики. У некоторых компиляторов-линкеров такого типа механизм встроен на халяву. В поиск.

Ну значит - таки не все свободны. И на NXP я не пеняю. Хотя вот...вроде бы число циклов записи во флеш ограничено. Где это в доке написано - не вижу в упор...

 

:bb-offtopic: И этот человек, который не знает, в какие адреса попала его программа, возмущается, что вопрос перенесли в ветку для начинающих. Позабавило.

 

ну так ежели не<s>трахаться</s> иметь дела с ассемблером и не пытаться ужаться в 512 байт RAM с 8-битным кодом, то про это знать вовсе не обязательно

:rolleyes:

во всяком случае - пока не припрет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И на NXP я не пеняю.

А это кто писал

где в документации описан алгоритм определения сектора для записи своих данных.

Где это в доке написано - не вижу в упор...

Тяжелый случай :(. А поиск в PDF не по плечу? Запустите в Data Sheet поиск "erase cycles".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А это кто писал

Ну так не написано ж.

 

Тяжелый случай :(. А поиск в PDF не по плечу? Запустите в Data Sheet поиск "erase cycles".

Вы не поверите. Нет такой буквы. Ни в UM10211 (дока на LPC2364-78), ни в UM10360 (дока на 17xx)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не поверите. Нет такой буквы. Ни в UM10211 (дока на LPC2364-78), ни в UM10360 (дока на 17xx)

Поверю :( :( :(. Читаем еще раз я писал "Data Sheet" а не "User Manual". Все параметры на чипы указываются в Data Sheet-ах.

 

 

 

Ну так не написано ж.

Так и НЕ ДОЛЖНО ничего быть написано про Вашу программу - нечего на зеркало пенять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:bb-offtopic: Почти. Может пора создать тему, в которой описать систему документации кристаллов в зависимости от производителя (NXP, TI, AD, Atmel и т.д.) и указать ГДЕ и ЧТО находится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так не написано ж.

Вы не поверите. Нет такой буквы. Ни в UM10211 (дока на LPC2364-78), ни в UM10360 (дока на 17xx)

 

Зато написано "endurance"...

И "retention time" заодно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поверю :( :( :(. Читаем еще раз я писал "Data Sheet" а не "User Manual". Все параметры на чипы указываются в Data Sheet-ах.

тьфу ты...виноват. Во многих других местах даташиты=узермануалу. Хотя чего бы не написать эту цифру в мануале - что, жаба душит лишнюю строчку написать ? Или в даташит отправить..

 

Так и НЕ ДОЛЖНО ничего быть написано про Вашу программу - нечего на зеркало пенять.

Раз это мануал для юзера - должно быть написано. Хотя бы - "смотрите в инструкцию для вашего линкера/компилера куда он чего складывает"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:bb-offtopic: Почти. Может пора создать тему..

Может пора, для начала, заходить на сайт производителя и смотреть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...