TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430I2040: 关于low_level_init.c的问题

Part Number:MSP430I2040

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

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

Ben Qin:

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

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

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

,

SY L:

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

,

Ben Qin:

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

,

Ben Qin:

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

,

SY L:

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

,

Ben Qin:

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

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

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

,

SY L:

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

,

Ben Qin:

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

,

SY L:

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

,

Ben Qin:

SY L 说:tlv是固定不变的吗

应该是。请看这张表:

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

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

赞(0)
未经允许不得转载:TI中文支持网 » MSP430I2040: 关于low_level_init.c的问题
分享到: 更多 (0)