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.

MSP430I2040: 关于low_level_init.c的问题

Part Number: MSP430I2040

使用INFO FLASH存储信息,由于INFO FLASH只有一个段,而最小擦除单位刚好也是一个段(segment)。在调试过程中擦除后出现了问题,无法在线调试,总是在例程中的low_level_init.c文件里的TLV校验那通不过直接进入了LPM4,把这个文件从工程里移除还是能用的,了解到是由于擦除了信息段的调校信息。

想知道移除low_level_init.c文件会产生什么样的影响?

  • 你好,TLV就在INFO FLASH中,所以它可以被擦除,由于INFO FLASH只是一个段,这就造成在这里面存数据有一点点危险,可以将TLV复制 然后再copy回来。

    如果将low_level_init.c文件移除,芯片可以运行,但只能说是“勉强”运行。

    你可以看下下面的帖子:e2e.ti.com/.../4456573

  • 我想避免在INFO FLASH中写入和擦除数据 选择在其他位置写入 例如0xC000 但是我发现每次重新烧录程序时内容就被擦除了 变成了FF 这样我无法获得已保存的数据 请问我应该怎样解决这个问题

  • 由于flash不能复写,所以每次重新烧录之前flash会被擦除。

  • 或者你可以尝试在CCS中尝试一下 ‘Erase By Address’ 。

  • 请问我可以选择Erase and download necessary segments only 这个选项然后代码中存到0XC000这个位置吗

  • 你好,Erase and download necessary segments only这个过程是自动完成的,它不能将代码存到指定位置。

    这个选项然后代码中存到0XC000这个位置吗

    指定位置擦除只在选中“By Address Range”时有效。

  • 我的代码中希望把一些内容存到flash中以供以后读取出来 例如一串字符串"ABCDEF" 存到0xC000位置 怎样才能保证这部分数据不被擦除呢

  • 不能,0xC000属于可擦除部分,所以无法保证它不被擦除。你也许可以试试OTP,但是注意OTP不可擦除的。

  • 那我想请问一下 tlv是固定不变的吗 如果我选择用INFO FLASH存储数据 擦除并修改数据时每次复制tlv再copy回去 会对程序的安全或者运行产生什么不良影响吗 

  • tlv是固定不变的吗

    应该是。请看这张表:

    擦除并修改数据时每次复制tlv再copy回去 会对程序的安全或者运行产生什么不良影响吗 

    不会,这就是我最开始给出的建议了。