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.
Flash Memory Protection Read Enable的位清零了以后,对应block只能执行程序,不能被读取。尝试读取一个读保护的block是被禁止的,并会产生一个bus fault。
自己的程序也不能读取 读保护的block。
Datasheet中对此有对应的描述:“Care must be taken not to store required data in a Flash memory block that has the associated FMPREn bit cleared”。
LM4F230片上有2K的EEPROM,可以用来存放用户需要的数据。
可问题是在执行程序时有些参数也是存在FLASH中的,比如for(i=0; i<10; i++); 中1和10就是数据存在FLASH中的。这个怎么来避免呢?
换句话说,怎么让编译器把这些参数存储在固定的FLASH空间呢?
比如说常量和变量的初始值都有对应的段,应该可以定义段的位置,但是程序中的参数有些是参照PC寻址的,我怎么来定义这些段的位置呢?
结论难道就是用C语言就不能设置禁止读的属性吗?只能用禁止JTAG的方法来防止程序被读出吗? GOD SAVE TI!
用C语言就能设置禁止读的属性,不仅仅是只能用禁止JTAG的方法来防止程序被读出,请参考下边的例程。