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

 
 
> Как сделать чтоб часть кода кампилятор не оптимизировал.
alexdos
сообщение Dec 16 2013, 23:49
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856



Компилятор Kei.
В флеш памяти по определенному адресу хранится константа
Код
const char dp_E  __attribute__((at(0x0800FCB0))) = {'N'};

В теле программы есть где она опрашивается и принимается решение
Код
if (dp_E ==  'Y')  set_dp();

В другой части кода есть возможность её поменять, так вот после её смены на 'Y' код не видит что она поменялась, и продолжает пропускать set_dp();
Если же написать
Код
volatile const char dp_E  __attribute__((at(0x0800FCB0))) = {'N'};
то всё работает как нужно, но выскакивает предупреждение
Код
Warning: L6969W: Changing AT Section .ARM.__AT_0x0800FCB0 type from RW to RO in ER_IROM1.

Подскажите неучу, как правильно сделать чтоб работало и не было предупреждений.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Dec 17 2013, 08:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



const char Init_dp_E __attribute__((at(0x0800FCB0))) = {'N'};

а какой тайный смысл этой строчки? При прошивке в эту ячейку флэшки записывается N?

Go to the top of the page
 
+Quote Post
alexdos
сообщение Dec 17 2013, 08:25
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856



Цитата(Golikov A. @ Dec 17 2013, 11:08) *
const char Init_dp_E __attribute__((at(0x0800FCB0))) = {'N'};

а какой тайный смысл этой строчки? При прошивке в эту ячейку флэшки записывается N?


Да, именно так. Сразу при прошивке возможна конфигурация (если заранее известно). Затем дистанционно, если возникает необходимость. Это всего только один параметр, а их там достаточно. Возможно это можно сделать и по другому, но у меня пока получилось так.

Сообщение отредактировал alexdos - Dec 17 2013, 08:26
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 17 2013, 09:02
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(alexdos @ Dec 17 2013, 12:25) *
Да, именно так. Сразу при прошивке возможна конфигурация (если заранее известно). Затем дистанционно, если возникает необходимость. Это всего только один параметр, а их там достаточно. Возможно это можно сделать и по другому, но у меня пока получилось так.


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

но с другой стороны при перепрошивке, я настройки не теряю.
Go to the top of the page
 
+Quote Post



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

 


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


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