jcxz 0 Posted February 18, 2020 · Report post 4 часа назад, ViKo сказал: Да-да, подтверждаю личным опытом, 0xFFFF'FFFF смотрится намного приятнее 0xffffffff. Приятнее смотрится ~0. Потому что не надо считать сколько там штук 'F'. Quote Ответить с цитированием Share this post Link to post Share on other sites
ViKo 0 Posted February 18, 2020 · Report post Только что, jcxz сказал: Приятнее смотрится ~0. Потому что не надо считать сколько там штук 'F'. Это частный случай. Quote Ответить с цитированием Share this post Link to post Share on other sites
_lexa_ 0 Posted February 18, 2020 · Report post 10 minutes ago, haker_fox said: "Стёрта" и "не инициализировалась" - это вещи ортогональные. Я исхожу из того, что перед записью во флэш контроллера эта область должна быть стерта. Может для каких-то контроллеров это не так, я не сталкивался с МК (это тоже ARM? Он есть в IAR EWARM 8.3?). Не могу угадать контроллер по двум буквам, если можно, напишите подробнее тип и производителя. Похоже не правильно обрисовал суть вопроса. В моем случае константы в ROM должны быть стерты, чтобы из программы потом в них однажды что-то записать, а потом прочитать именно то что записал, что в итоге мне требуется. При этом из стертых областей читаются значения 0xFF. Quote Ответить с цитированием Share this post Link to post Share on other sites
jcxz 0 Posted February 18, 2020 · Report post 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" назначить заполнение произвольной области флешь произвольным значением. Quote Ответить с цитированием Share this post Link to post Share on other sites
_lexa_ 0 Posted February 18, 2020 · Report post 47 minutes ago, jcxz said: Если константу объявить: __no_init char const tzzz[256] @ ".tzzz"; Спасибо, jcxz. Quote Ответить с цитированием Share this post Link to post Share on other sites
VladislavS 0 Posted February 18, 2020 · Report post Сдаётся мне, тут EEPROM изобретают? Линкером создать секцию в памяти и через указатель с ней работать. Ну или просто отрезать кусок памяти из-под власти линкера и так же через указатель. Вот это будет по стандарту. Quote Ответить с цитированием Share this post Link to post Share on other sites
haker_fox 0 Posted February 18, 2020 · Report post 5 hours ago, _lexa_ said: я не сталкивался с МК МК - это общепринятое, по крайней мере тут, сокращение от микроконтроллер. Quote Ответить с цитированием Share this post Link to post Share on other sites
_lexa_ 0 Posted February 18, 2020 · Report post 23 minutes ago, haker_fox said: МК - это общепринятое, по крайней мере тут, сокращение от микроконтроллер. Ясн. Я уж решил, что это какой-то тип микроконтроллера, у которого при стирании память заполняется нулями (мало ли кто, чего изобрел). Хоть бы намекнули, что это фантазия. 1 hour ago, VladislavS said: Линкером создать секцию в памяти и через указатель с ней работать. Ну или просто отрезать кусок памяти из-под власти линкера и так же через указатель. Вот это будет по стандарту Тоже, конечно, вариант, но не охота на каждую константу задавать статический адрес. Если констант будет много, а еще массивы. Лишняя заморочка. Вариант jcxz мне подходит больше. Quote Ответить с цитированием Share this post Link to post Share on other sites
haker_fox 0 Posted February 18, 2020 · Report post 4 minutes ago, _lexa_ said: Хоть бы намекнули, что это фантазия. Ну если бы вы знали, что это означает МК, вы бы всё поняли. Но это и не важно, впрочем. Я вам указал одну из основных проблем - привязку к технологии памяти. Я бы так делать не стал. Но это ваше дело. Quote Ответить с цитированием Share this post Link to post Share on other sites
jcxz 0 Posted February 18, 2020 · Report post 13 минут назад, _lexa_ сказал: Ясн. Я уж решил, что это какой-то тип микроконтроллера, у которого при стирании память заполняется нулями (мало ли кто, чего изобрел). Хоть бы намекнули, что это фантазия. Такие тоже есть. Не у всех стёртое состояние = лог."1". Какая разница сколько там инверторов на пути от ячейки флеша. Quote Ответить с цитированием Share this post Link to post Share on other sites
haker_fox 0 Posted February 18, 2020 · Report post Just now, jcxz said: Такие тоже есть. Не у всех стёртое состояние = лог."1". О как! А это уже для меня новость. Хотя и вполне очевидная, мало-ли какие технологии используются) Quote Ответить с цитированием Share this post Link to post Share on other sites
jcxz 0 Posted February 18, 2020 · Report post 14 минут назад, _lexa_ сказал: Если констант будет много, а еще массивы. ...то поместить их внутрь структуры, которую и разместить в нужном диапазоне адресов. Quote Ответить с цитированием Share this post Link to post Share on other sites
VladislavS 0 Posted February 18, 2020 · Report post 16 минут назад, _lexa_ сказал: каждую константу задавать статический адрес. Структура. А её адрес у линкера взять. Quote Ответить с цитированием Share this post Link to post Share on other sites
_lexa_ 0 Posted February 18, 2020 · Report post 4 minutes ago, haker_fox said: Ну если бы вы знали, что это означает МК, вы бы всё поняли. Смотря в каком контексте эти общепринятые сокращения употребляются. Да и привязка к технологи здесь наполовину. Вряд ли станут изобретать EEPROM, которая при стирании обнуляется, потом чтобы в нее правильно записать нужно установить ее в единицы и после этого писать. А если после обнуления в нее сразу можно писать, меня этот вариант тоже устроит. Да и не против я привязки технологии, если это упростит жизнь в итоге. Quote Ответить с цитированием Share this post Link to post Share on other sites
Сергей Борщ 0 Posted February 18, 2020 · Report post 6 минут назад, haker_fox сказал: О как! А это уже для меня новость. Из тех, что сейчас у всех на слуху - STM32Lxxx. Были еще какие-то, сейчас уже не вспомню. Quote Ответить с цитированием Share this post Link to post Share on other sites