|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.08.2021, 12:51 | #11 | |||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Цитата:
Цитата:
Цитата:
А будете сохранять во флеш или нет роли не играет.
I am not a wizard, I am just learning.
Последний раз редактировалось Desc; 29.08.2021 в 12:53. |
|||
29.08.2021, 13:06 | #12 | ||
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
Что бы массив байт записались во Flash нужно явно это указать директивой PROGMEM.
В этом случае методом std::cout << buff[1] << std::endl; доступа даже на чтение не получите, не говоря уже о записи. Запись вообще станет невозможной. В Си, например, есть функция pgm_read_byte, которая позволяет прочесть нужный адрес в статической памяти, но не более. По этому роль тут важная. Цитата:
Цитата:
Всё гениальное - просто!
Последний раз редактировалось Air; 29.08.2021 в 13:09. |
||
29.08.2021, 13:12 | #13 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Вопрос темы тогда в чем.
Почему при указанном якобы нулевом размере переменной происходит чтение? Или все же как корректно читать ПЗУ? Вы уж будьте добры уточните. А то похоже говорим о различных методах.
I am not a wizard, I am just learning.
|
29.08.2021, 13:27 | #14 | ||
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
Desc
Цитирую из первого поста. Цитата:
возможных причинах не появления ошибок. Я думаю каждый маломальский программист понимает, что работать с не выделенной памятью по меньшей мере опасно и глупо. Всё дело в том, что в книжке не напишут о возможных ситуациях и причинах случайно работающей программы, потому что таких ситуаций могут быть миллионы. Но людей много и кто-то что-то знает. Цитата:
Всё гениальное - просто!
|
||
29.08.2021, 13:52 | #15 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Дело в том что так называемый буфер, в данном случае это та же переменная.
Объявление uint8_t buff это объявление переменной. И каждая переменная после инициализации занимает определенное место в ОЗУ. Код:
О подобных упущениях как правило сообщает линковщик в виде предупреждений. Как-бы-так.
I am not a wizard, I am just learning.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Здравствуйте ! в чем проблема,почему почему время исполнения операций не работает ? | ion leahu | Помощь студентам | 6 | 23.11.2014 19:36 |
AVR. Почему одно прерывание блокирует другое? | Admin2 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 27.07.2013 22:30 |
Формула ЕСЛИ не работает. Почему? | cutie_girl | Microsoft Office Excel | 3 | 25.10.2012 23:18 |
Скрипт не работает, если линкую локально, а работает если линкую на .. | keen_ | JavaScript, Ajax | 3 | 08.03.2012 07:58 |
AVR ATmega 128: почему не происходит переход? | Blondy | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 06.05.2011 01:28 |