#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)
如何编写我需要的程序。 请告诉我。