#include "ti_msp_dl_config.h"
/* Address in main memory to write to */
#define MAIN_BASE_ADDRESS (0x00010000)
/* 16-bit data to write to flash */
uint16_t gData16 = 0x2222;
uint16_t gData160 = 0x4444;
/* 32-bit data to write to flash */
uint32_t gData32 = 0x33333333;
/* Array to write 64-bits to flash */
uint32_t gDataArray64[] = {0xABCDEF00, 0x12345678};
/* 32-bit data array to write to flash */
uint32_t gDataArray32[] = {0x00000000, 0x11111111, 0x22222222, 0x33333333,
0x4444, 0x55555, 0x66, 0x77, 0x8, 0x9};
/* 8-bit data to write to flash */
uint8_t gData80 = 0x11;
uint8_t gData81 = 0x03;
uint8_t gData82 = 0xFF;
volatile DL_FLASHCTL_COMMAND_STATUS gCmdStatus;
int main(void)
{
SYSCFG_DL_init();
/* Unprotect sector in main memory with ECC generated by hardware */
DL_FlashCTL_unprotectSector(
FLASHCTL, MAIN_BASE_ADDRESS, DL_FLASHCTL_REGION_SELECT_MAIN);
/* Erase sector in main memory */
gCmdStatus = DL_FlashCTL_eraseMemoryFromRAM(
FLASHCTL, MAIN_BASE_ADDRESS, DL_FLASHCTL_COMMAND_SIZE_SECTOR);
if (gCmdStatus == DL_FLASHCTL_COMMAND_STATUS_FAILED) {
/* If command was not successful, set a breakpoint */
__BKPT(0);
}
/* 8-bit write to flash in main memory */
DL_FlashCTL_unprotectSector(
FLASHCTL, MAIN_BASE_ADDRESS, DL_FLASHCTL_REGION_SELECT_MAIN);
gCmdStatus = DL_FlashCTL_programMemoryFromRAM8WithECCGenerated(
FLASHCTL, MAIN_BASE_ADDRESS, &gData80);
if (gCmdStatus == DL_FLASHCTL_COMMAND_STATUS_FAILED) {
/* If command was not successful, set a breakpoint */
__BKPT(0);
}
DL_FlashCTL_unprotectSector(
FLASHCTL, MAIN_BASE_ADDRESS, DL_FLASHCTL_REGION_SELECT_MAIN);
gCmdStatus = DL_FlashCTL_programMemoryFromRAM8WithECCGenerated(
FLASHCTL, MAIN_BASE_ADDRESS, &gData81);
if (gCmdStatus == DL_FLASHCTL_COMMAND_STATUS_FAILED) {
/* If command was not successful, set a breakpoint */
__BKPT(0);
}
DL_FlashCTL_unprotectSector(
FLASHCTL, MAIN_BASE_ADDRESS, DL_FLASHCTL_REGION_SELECT_MAIN);
gCmdStatus = DL_FlashCTL_programMemoryFromRAM8WithECCGenerated(
FLASHCTL, MAIN_BASE_ADDRESS, &gData82);
if (gCmdStatus == DL_FLASHCTL_COMMAND_STATUS_FAILED) {
/* If command was not successful, set a breakpoint */
__BKPT(0);
}
您好、先生。
我想制作程序以便 将数据写入闪存中。
我引用 mspm0_sdk 中的示例程序"flashctl_multiple_size_write"、并在同一闪存地址中添加"过写不同数据程序"。
此程序应在闪存0x00010000上写入8位数据0x11、0x03、0xff、但在写入第一个字节"0x11"后它不会改变。 (我预计存储器数据将会更改11->03->ff)
如何编写我需要的程序。 请告诉我。