您好!! 香榭丽舍大街
我的程序中有一个部分写入和擦除闪存(0x8.3万)区域中的数据。
如果按如下所示设置DCSM,

在写入闪存数据和从闪存中删除数据时发生错误。

在这方面,问题如下:
1.设置DCSM后,是否无法在闪存区域中读取/写入?
1-1。 如果不可能,是否有解决方法?
请回答。
我们始终感谢您的帮助。
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.
您好!! 香榭丽舍大街
我的程序中有一个部分写入和擦除闪存(0x8.3万)区域中的数据。
如果按如下所示设置DCSM,

在写入闪存数据和从闪存中删除数据时发生错误。

在这方面,问题如下:
1.设置DCSM后,是否无法在闪存区域中读取/写入?
1-1。 如果不可能,是否有解决方法?
请回答。
我们始终感谢您的帮助。
感谢您的回答
所有闪存扇区/RAM都分配给Zone2。
CMD文件位于BSS,数据,系统和const的RAMGS中。
文本分配给RAMLS。
也许我对CMD文件中的设置做了一些错误?
我设置的CMD文件如下所示。
MEMORY
{
BEGIN : origin = 0x00080000, length = 0x00000002
BOOT_RSVD : origin = 0x00000002, length = 0x00000126
BOOTROM : origin = 0x003F8000, length = 0x00007FC0
SECURE_ROM : origin = 0x003F2000, length = 0x00006000
RESET : origin = 0x003FFFC0, length = 0x00000002
RAMM0 : origin = 0x00000128, length = 0x000002D8 /* stack */
RAMM1 : origin = 0x00000400, length = 0x00000380 /* on-chip RAM block M1 */
BOOT_RSVD_SYSBIOS : origin = 0x00000780, length = 0x00000080
RAMLS0_1 : origin = 0x00008000, length = 0x00001000
RAMLS2_7 : origin = 0x00009000, length = 0x00003000
RAMGS0_2 : origin = 0x0000C000, length = 0x00003000
RAMGS3 : origin = 0x0000F000, length = 0x00001000
/* Flash sectors */
/* BANK 0 */
FLASHB0_BOOTLOADER_VER : origin = 0x080010, length = 0x000040 /* BANK0 on-chip Flash sector0 */
FLASHB0_BOOTLOADER : origin = 0x080050, length = 0x002EA0 /* BANK0 on-chip Flash sector0~2 */
FLASHB0_APP_RESET_VEC : origin = 0x083010, length = 0x000008 /* BANK0 on-chip Flash sector3 */
FLASHB0_APP_SIGN : origin = 0x083018, length = 0x000008 /* BANK0 on-chip Flash sector3 */
FLASHB0_APP_VER : origin = 0x083020, length = 0x000050 /* BANK0 on-chip Flash sector3 */
FLASHB0_APP : origin = 0x083070, length = 0x00AF90 /* BANK0 on-chip Flash sector3~13 */
FLASHB0_APP_MTR_DATA : origin = 0x08E000, length = 0x001000 /* BANK0 on-chip Flash sector14 */
FLASHB0_APP_EEP_DATA : origin = 0x08F000, length = 0x001000 /* BANK0 on-chip Flash sector15 */
/* BANK 1 */
FLASH_BANK1_SEC0 : origin = 0x090000, length = 0x001000
FLASH_BANK1_SEC1 : origin = 0x091000, length = 0x001000
FLASH_BANK1_SEC2 : origin = 0x092000, length = 0x001000
FLASH_BANK1_SEC3 : origin = 0x093000, length = 0x001000
FLASH_BANK1_SEC4 : origin = 0x094000, length = 0x001000
FLASH_BANK1_SEC5 : origin = 0x095000, length = 0x001000
FLASH_BANK1_SEC6 : origin = 0x096000, length = 0x001000
FLASH_BANK1_SEC7 : origin = 0x097000, length = 0x001000
FLASH_BANK1_SEC8 : origin = 0x098000, length = 0x001000
FLASH_BANK1_SEC9 : origin = 0x099000, length = 0x001000
FLASH_BANK1_SEC10 : origin = 0x09A000, length = 0x001000
FLASH_BANK1_SEC11 : origin = 0x09B000, length = 0x001000
FLASH_BANK1_SEC12 : origin = 0x09C000, length = 0x001000
FLASH_BANK1_SEC13 : origin = 0x09D000, length = 0x001000
FLASH_BANK1_SEC14 : origin = 0x09E000, length = 0x001000
FLASH_BANK1_SEC15 : origin = 0x09F000, length = 0x001000
}
SECTIONS
{
codestart : > BEGIN, ALIGN(8)
.text : > FLASHB0_BOOTLOADER, ALIGN(8)
.cinit : > FLASHB0_BOOTLOADER, ALIGN(8)
.switch : > FLASHB0_BOOTLOADER, ALIGN(8)
.reset : > RESET, TYPE = DSECT /* not used, */
.stack : > RAMM0
.init_array : > FLASHB0_BOOTLOADER, ALIGN(8)
.bss : > RAMGS0_2
.bss:output : > RAMGS0_2
.bss:cio : > RAMGS0_2
.data : > RAMGS0_2
.sysmem : > RAMGS0_2
.const : > FLASHB0_BOOTLOADER, ALIGN(8)
app_version : > FLASHB0_APP_VER
app_sign : > FLASHB0_APP_SIGN
boot_version : > FLASHB0_BOOTLOADER_VER
est_data : > RAMGS0_2
/* Allocate IQ math areas: */
IQmath : > FLASHB0_BOOTLOADER, ALIGN(8)
IQmathTables : > FLASHB0_BOOTLOADER, ALIGN(8)
GROUP
{
.TI.ramfunc
{ -l FAPI_F28003x_EABI_v1.58.00.lib}
} LOAD = FLASHB0_BOOTLOADER
RUN = RAMLS2_7,
LOAD_START(RamfuncsLoadStart),
LOAD_SIZE(RamfuncsLoadSize),
LOAD_END(RamfuncsLoadEnd),
RUN_START(RamfuncsRunStart),
RUN_SIZE(RamfuncsRunSize),
RUN_END(RamfuncsRunEnd),
ALIGN(8)
}
SECTIONS
{
user_data : > RAMM1
sys_data : > RAMM1
ctrl_data : > RAMGS0_2
foc_data : > RAMGS0_2
motor_data : > RAMGS0_2
}
SECTIONS
{
datalog_data : > RAMGS3
graph_data : > RAMGS3
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/
我可以检查什么??
此致。
关于这一问题的资料不足。
很抱歉这个。
面临的问题如下:
1.您要实施的内容
-我想防止使用DCSM对闪存/RAM区域进行不必要的访问。
-我想在使用DCSM设置的应用程序操作期间对闪存区域执行读/写操作。
2.进展情况
-以下设置是通过DCSM进行的。
闪存和RAM都分配给ZONE2。
Z2_GRABCHECT1R = 0x55.5555万
Z2_GRABCHECT2R = 0x55.5555万
Z2_GRABCHECT3R = 0x55.5555万
Z2_GRABRAM1R = 0x0.5555万
密码是通过设置CSMKEY设置的。

-我修改了CMD文件,并按如下所示进行设置。
将文本分配给RAMLS
将BSS,数据,系统,const分配给RAMGS
3.测试结果
-设置DCSM之前
在应用程序运行期间,可在闪存区域进行读/写操作。
-设置DCSM后
加电复位后,应用程序操作期间,闪存区域中不能读/写。
如果在调试设置期间模拟和驱动CSMPSWD,则可以进行读/写。
(GPIO 24低,GPIO 32高,等待模式)

我想用DCSM设置一个程序来读取/写入闪存区域。
我查看了您之前发送给我的用户指南。
说明分配给同一区域的RAM/闪存可以读/写。
我认为通过将其分配给ZONE2,它将在闪存区域中读/写,
测试结果没有。
我不知道我做错了什么,所以我要求智慧。
此致。
您好,
在2000在加2000加电108.4725万电重28.0037万重置401.7843万置后401.7843万后的应用程序操作期间,不能在闪存区域中进行读/写。[/quote-use.[/quote一旦将安全设置为“开 ”,则可以通过从同一区域运行的代码执行读/写操作。 您需要检查的一件事是,您已正确配置FLSEM寄存器,将SEM位字段值更改为'10',以便Zone2代码可以访问闪存控制寄存器。 如果未完成HIS,则编程将不起作用。
此致,
Vivek Singh