Пт мар 26, 2021 21:55:34
volatile uint32_t a[10] __attribute__ ((section(".eep_bank_2"))) = {1,2,3,4,5,6,7,8,9,10};
MEMORY
{
...
EEP1 (rw) : ORIGIN = 0x08080000, LENGTH = 8K
...
}
...
.eeprom_bank_1 :
{
KEEP (*(.eep_bank_1));
} > EEP1
.eeprom_bank_1 0x08080000 :
{
KEEP(*(.eep_bank_1));
}
Пт мар 26, 2021 23:43:14
Потому что данные для ОЗУ, но хранятся во флеше.YS писал(а):зачем при объявлении секции .data используется атрибут AT?
EEPROM в STM32 поддерживает прямую запись?YS писал(а):EEP1 (rw) : ORIGIN = 0x08080000, LENGTH = 8K
EEP2 (rw) : ORIGIN = 0x08082000, LENGTH = 8K
Сб мар 27, 2021 10:18:18
EEPROM в STM32 поддерживает прямую запись?
Сб мар 27, 2021 11:09:53
Чт апр 08, 2021 23:17:14
Чт апр 15, 2021 14:59:52
все время работать с разблокированным на запись EEPROM не очень удачная идея с точки зрения сохранности данных в нем.
И это, при рестарте переменные инициализируются же.
А как вы начальные значения пропишете только 1 раз?
И вообще как оно будет non-volatile при этом, если так в лоб?
Кроме того - доступ на запись может bus stall на довольно почтенное время. Вам совсем плевать на реальное время и вы готовы с неконтролируемым (вами явно) тупняком чипа от такого доступа жить?
но осторожно, указатели они такие
Пт апр 23, 2021 13:50:58
Пт апр 23, 2021 18:31:11
Пт апр 23, 2021 18:49:49
Пт апр 23, 2021 19:20:01
Пт апр 23, 2021 20:19:51
Пт апр 23, 2021 20:59:19
Вс апр 25, 2021 16:47:03
Как можно сделать, чтобы эти функции при линковке загрузчика ложились в определенное место в прошивке, а в приложении эти функции подхватывались из того же места?
MEMORY
{
...
SHARED_CODE_REGION (rx) : ORIGIN <где должен начинаться разделяемый код>, LENGTH = <сколько выделим под разделяемый код>
}
...
.shared_code_section:
{
__shared_code_start__ = .;
KEEP(*(.shared_code));
} > SHARED_CODE_REGION;
<тип> function(...) __attribute__ ((section(".shared_code")))
{
...
}
Вс апр 25, 2021 17:16:17
YS писал(а):В той программе, которая эти функции должна только использовать, но не содержать, к секции .shared_code_section добавляем атрибут NOLOAD.