MSP430G2553 имеет только 512 байт ОЗУ, но 16 КБ флэш-памяти. На этом микроконтроллере все статические / глобальные переменные назначаются в ОЗУ в разделе .bss. Все локальные переменные назначаются в ОЗУ в разделе .stack. Все динамически выделяемые переменные памяти (malloc) назначаются в ОЗУ в разделе .sysmem.
Мне нужен этот MSP430 для отслеживания подключенных устройств через Wi-Fi. У меня есть структура как таковая:
struct dev
{
char type[20];
char ipAddress[13];
char name[20];
char status[1];
};
Эта структура занимает 54 байта памяти для каждого устройства. Я планирую подключить к этому MSP430 20+ устройств, и мне понадобится 20 таких структур. 20 х 54 байта = 1080 байтов. Очевидно, это слишком много для 512 байт оперативной памяти.
Есть ли способ записать эти структуры во FLASH, поскольку у меня есть 16 КБ памяти для использования? Я понимаю, что FLASH - это переменные, которые доступны только для чтения. Эти структуры, очевидно, будут назначены, поэтому это чтение-запись, и я не уверен, возможно ли это.
Я не совсем понимаю, зачем TI делать устройство с 16 КБ флэш-памяти и только 512 байтами ОЗУ, когда все переменные, требующие операций чтения-записи, хранятся в ОЗУ. Похоже, это пустая трата места.
Я попытался изменить эти разделы .bss / .stack / .sysmem на FLASH в файле компоновщика, и MSP430 не будет работать в таком виде. Я также попытался изменить размер ОЗУ и файла компоновщика и изменить места в памяти, добавив еще 512 байт, но это тоже не будет работать так.
Есть ли у меня здесь какие-нибудь варианты?
char
может ссылаться на 256 различных типов, которые могут быть подробно описаны в ПЗУ (или коде FLASH), но вы должны поместить поле рядом с полемstatus
или упаковатьstruct
. В любом случае, в чем смыслchar status[1]
? - person Weather Vane   schedule 23.07.2015stdint.h
типы, а не стандартные типы. Также: мне все еще интересно, откуда у вас IP-адрес 13char
? - person too honest for this site   schedule 23.07.2015"001002003004\0"
- person Weather Vane   schedule 23.07.2015uint32_t
, как в IP-кадре. - person too honest for this site   schedule 23.07.2015char status[1];
- person Weather Vane   schedule 23.07.2015