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

 
 
 
Reply to this topicStart new topic
> Запись во флэш при прошивке
S1LENCE
сообщение Jul 6 2011, 08:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 2-01-11
Пользователь №: 61 990



Здравствуйте,

подскажите как записать данные во флэш по определенному адресу только во время прошивки контроллера LPC2148 в Keil.
Я так понимаю надо что-то в scatter-файле написать...
Но что?

Спасибо
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 6 2011, 08:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(S1LENCE @ Jul 6 2011, 11:08) *
Я так понимаю надо что-то в scatter-файле написать...
Но что?


Для таких простых случаев SCATTER не нужен. Адрес можно задать соотв. директивой, например, так:

const unsigned int csr_dword __attribute__((at(0x000001fc))) = 0x87654321; //CRP word ...

А можно выделить отдельную область для блоков данных или кода (Project -> Options for target -> Target -> ...)
Go to the top of the page
 
+Quote Post
S1LENCE
сообщение Jul 6 2011, 09:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 2-01-11
Пользователь №: 61 990



Цитата(kovigor @ Jul 6 2011, 11:33) *
Для таких простых случаев SCATTER не нужен. Адрес можно задать соотв. директивой, например, так:

const unsigned int csr_dword __attribute__((at(0x000001fc))) = 0x87654321; //CRP word ...

А можно выделить отдельную область для блоков данных или кода (Project -> Options for target -> Target -> ...)


У меня эти значения будут изменятся во время работы программы, нужно чтоб новые значения оставались там же
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 6 2011, 09:30
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(S1LENCE @ Jul 6 2011, 12:00) *
У меня эти значения будут изменятся во время работы программы, нужно чтоб новые значения оставались там же


Там и останутся. Но за то, где они останутся, отвечаете вы, а не Кейл. Вы же не в ОЗУ пишете, а во Flash. То, что вы описали, потребует реализации IAP. А что и куда запишется в процессе IAP - за это отвечаете только вы ...
Go to the top of the page
 
+Quote Post
S1LENCE
сообщение Jul 6 2011, 10:54
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 2-01-11
Пользователь №: 61 990



И при рестарте контроллера останнутся значения которые будут записаны через IAP??
Что-то данный синтаксис (csr_dword __attribute__((at(0x000001fc))) = 0x87654321; //CRP word ...) не работает в Keil...
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 6 2011, 11:20
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(S1LENCE @ Jul 6 2011, 13:54) *
И при рестарте контроллера останнутся значения которые будут записаны через IAP??
Что-то данный синтаксис (csr_dword __attribute__((at(0x000001fc))) = 0x87654321; //CRP word ...) не работает в Keil...


Да, там и останутся.
Не работать это не может, это взято из готового проекта, компилятор RealView (не CARM !!!). Эта строка предписывает компилятору при формировании образа прошивки для записи его (т.е., образа) программатором положить в образе это число по этому смещению, но никак не записать это число во Flash в процессе выполнения программы. Для выполнения последней задачи привлекается IAP ...
Go to the top of the page
 
+Quote Post
S1LENCE
сообщение Jul 6 2011, 11:36
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 2-01-11
Пользователь №: 61 990



Цитата(kovigor @ Jul 6 2011, 14:20) *
Да, там и останутся.
Не работать это не может, это взято из готового проекта, компилятор RealView (не CARM !!!). Эта строка предписывает компилятору при формировании образа прошивки для записи его (т.е., образа) программатором положить в образе это число по этому смещению, но никак не записать это число во Flash в процессе выполнения программы. Для выполнения последней задачи привлекается IAP ...


Ааа, теперь все понятно, спасибо большое - это именно то что нужно!
И таки работает, обязательно нужно две скобки а не одну перед at.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 6 2011, 11:48
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(S1LENCE @ Jul 6 2011, 14:36) *
И таки работает, обязательно нужно две скобки а не одну перед at.


Не работать оно ну никак не может ...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:01
Рейтинг@Mail.ru


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