jcxz 183 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 4 часа назад, ViKo сказал: Да-да, подтверждаю личным опытом, 0xFFFF'FFFF смотрится намного приятнее 0xffffffff. Приятнее смотрится ~0. Потому что не надо считать сколько там штук 'F'. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба Только что, jcxz сказал: Приятнее смотрится ~0. Потому что не надо считать сколько там штук 'F'. Это частный случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_lexa_ 0 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 10 minutes ago, haker_fox said: "Стёрта" и "не инициализировалась" - это вещи ортогональные. Я исхожу из того, что перед записью во флэш контроллера эта область должна быть стерта. Может для каких-то контроллеров это не так, я не сталкивался с МК (это тоже ARM? Он есть в IAR EWARM 8.3?). Не могу угадать контроллер по двум буквам, если можно, напишите подробнее тип и производителя. Похоже не правильно обрисовал суть вопроса. В моем случае константы в ROM должны быть стерты, чтобы из программы потом в них однажды что-то записать, а потом прочитать именно то что записал, что в итоге мне требуется. При этом из стертых областей читаются значения 0xFF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 183 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 21 минуту назад, _lexa_ сказал: Похоже не правильно обрисовал суть вопроса. В моем случае константы в ROM должны быть стерты, чтобы из программы потом в них однажды что-то записать, а потом прочитать именно то что записал, что в итоге мне требуется. При этом из стертых областей читаются значения 0xFF. Если константу объявить: __no_init char const tzzz[256] @ ".tzzz"; а в .icf-файле линкёра прописать для неё целевое размещение подобно: define region FLASHU_regionA = mem:[from 0x0C000000 to 0x0C0FFFFF]; ... do not initialize {section .tzzz}; ... place in FLASHU_regionA {section .tzzz}; то компиляция проходит нормально, место под tzzz резервируется, но ничем не заполняется. И, при желании, можно в "Options\Linker\Checksum" назначить заполнение произвольной области флешь произвольным значением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_lexa_ 0 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 47 minutes ago, jcxz said: Если константу объявить: __no_init char const tzzz[256] @ ".tzzz"; Спасибо, jcxz. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба Сдаётся мне, тут EEPROM изобретают? Линкером создать секцию в памяти и через указатель с ней работать. Ну или просто отрезать кусок памяти из-под власти линкера и так же через указатель. Вот это будет по стандарту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 5 hours ago, _lexa_ said: я не сталкивался с МК МК - это общепринятое, по крайней мере тут, сокращение от микроконтроллер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_lexa_ 0 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 23 minutes ago, haker_fox said: МК - это общепринятое, по крайней мере тут, сокращение от микроконтроллер. Ясн. Я уж решил, что это какой-то тип микроконтроллера, у которого при стирании память заполняется нулями (мало ли кто, чего изобрел). Хоть бы намекнули, что это фантазия. 1 hour ago, VladislavS said: Линкером создать секцию в памяти и через указатель с ней работать. Ну или просто отрезать кусок памяти из-под власти линкера и так же через указатель. Вот это будет по стандарту Тоже, конечно, вариант, но не охота на каждую константу задавать статический адрес. Если констант будет много, а еще массивы. Лишняя заморочка. Вариант jcxz мне подходит больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 4 minutes ago, _lexa_ said: Хоть бы намекнули, что это фантазия. Ну если бы вы знали, что это означает МК, вы бы всё поняли. Но это и не важно, впрочем. Я вам указал одну из основных проблем - привязку к технологии памяти. Я бы так делать не стал. Но это ваше дело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 183 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 13 минут назад, _lexa_ сказал: Ясн. Я уж решил, что это какой-то тип микроконтроллера, у которого при стирании память заполняется нулями (мало ли кто, чего изобрел). Хоть бы намекнули, что это фантазия. Такие тоже есть. Не у всех стёртое состояние = лог."1". Какая разница сколько там инверторов на пути от ячейки флеша. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба Just now, jcxz said: Такие тоже есть. Не у всех стёртое состояние = лог."1". О как! А это уже для меня новость. Хотя и вполне очевидная, мало-ли какие технологии используются) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 183 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 14 минут назад, _lexa_ сказал: Если констант будет много, а еще массивы. ...то поместить их внутрь структуры, которую и разместить в нужном диапазоне адресов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 16 минут назад, _lexa_ сказал: каждую константу задавать статический адрес. Структура. А её адрес у линкера взять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_lexa_ 0 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 4 minutes ago, haker_fox said: Ну если бы вы знали, что это означает МК, вы бы всё поняли. Смотря в каком контексте эти общепринятые сокращения употребляются. Да и привязка к технологи здесь наполовину. Вряд ли станут изобретать EEPROM, которая при стирании обнуляется, потом чтобы в нее правильно записать нужно установить ее в единицы и после этого писать. А если после обнуления в нее сразу можно писать, меня этот вариант тоже устроит. Да и не против я привязки технологии, если это упростит жизнь в итоге. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба 6 минут назад, haker_fox сказал: О как! А это уже для меня новость. Из тех, что сейчас у всех на слуху - STM32Lxxx. Были еще какие-то, сейчас уже не вспомню. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться