This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMS570LS1114:如何正确地进行读取和写入以基于 TMS570LS1114操作闪存?

Guru**** 2460850 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/652677/ccs-tms570ls1114-how-to-read-and-write-rightly-to-operate-the-flash-based-on-tms570ls1114

器件型号:TMS570LS1114

工具/软件:Code Composer Studio

您好:

我读取和写入闪存,基于 F021闪存 API,这使得写入数据正常,但读取时没有数据。 我的步骤是:

1对 CMD 中的区域进行分频

2表示要写入数据的区域的除法

3表示分频区域读取数据

我已经过测试、发现了三个问题。 第一个问题是我可以写入数据、但数据不正确、我的方法是否 在 处理过程中出错、如何修改? 第二个问题是我昨天移植了闪存、在这个过程中写入了一个新项目、发现有些可以实现闪存数据写入、有些不能实现? 当然、我基于 HALCogen 生成的代码、写入失败和 halcogenconfiguration是否相关?

关于王某昨天提到的问题,我应该在计划中做些什么?

您昨天提到的大约2和3已更改。

存储器

/*vectors (X):origin=0x00000000 length=0x00000020
FLASH0 (RX):origin=0x00000020 length=0x000FFFE0
堆栈(RW):origin=0x08000000 length=0x00001500
RAM (RW):origin=0x08001500 length=0x0001EB00*/
引导程序(X):origin=0x00000000 length=0x00000020
FLASH0 (RX):origin=0x00000020 length=0x000F5FE0
CAL_ROM (RX):origin=0x000FE000 length=0x000003E8//length=0x00002000
堆栈(RW):origin=0x08000000 length=0x00001500
RAM (RW):origin=0x08001501 length=0x0001CFFF
CAL_RAM (RW):origin=0x0801E500 length=0x00001000

void fapi_flash_init (void)

Fapi_initializeFlashBanks (GCLK_FREQ);
Fapi_setActiveFlashBank (Fapi_FlashBank0);
Fapi_enableMainBankSecors (0xFFFFFFF);//0x0000_0000-0x0000_3FFF

uint8 fapi_flash_save (uint32_t * Flash_Start_Adress、uint32_t * Datas_Start_Adress、uint8_t Datas_sizeInBytes)

uint16 i = 50000;
寄存器 uint32_t esa=Flash_Start_Adress;
寄存器 uint32_t dSA=Data_Start_Adress;
寄存器 uint8_t DSB=Datas_sizeInBytes;
while (I-)

if (fapi_Status_FsmReady = fapi_checkFsmForReady ())
中断;

fapi_issueProgrammingCommand ((uint32_t*) ESA、(uint8_t*) DSA、DSB、0、0、 Fapi_AutoEccGeneration);

// fapi_doVerifyByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByte (((((uint8_t*) ESA、(uint32_t) DSB、uint32_t DSA、

uint8 fapi_flash_read (uint32_t * Flash_Start_Adress、uint32_t * Datas_Start_Adress、uint8_t Datas_sizeInBytes)

uint16 i = 20000;
寄存器 uint32_t esa=Flash_Start_Adress;
寄存器 uint32_t dSA=Data_Start_Adress;
寄存器 uint8_t DSB=Datas_sizeInBytes;
while (I-)

if (fapi_Status_FsmReady = fapi_checkFsmForReady ())
中断;

Fapi_doMarginReadByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByByte(UINT32_t*) ESA、(uint8_t*) DSA、(uint8_t)DSB、Fapi_normalRead);


int main (空)

/*用户代码开始(3)*/
/********* 2017/12/27***** FAPI 操作闪存
(三 /
fapi_flash_init();
fapi_flash_save (0x000FE100、api_flash_save_data、16);
Fapi_flash_read (0x000FE200、API_flash_read_data、16);
while (1);

我期待着您的重播。

                                                                                                           邱志

2017年12月28日