PSOC6关于ram_app1的修改

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
charles-weikeng
Level 3
Level 3
Distributor - Weikeng(GC)
50 sign-ins 10 likes given 10 replies posted

麻烦帮忙确认一下.ld文件中ram_app1这个LENGTH值应该如何设置,是否为可用RAM。当调整为3D800,调用到Cy_Flash_WriteRow()函数,返回CY_FLASH_DRV_ERR_UNC错误,看描述是要读Cy_Flash_GetExternalStatus()函数,读出来的值是0xF0000013。当调整为20000,Cy_Flash_WriteRow()函数可以正常使用。

0 Likes
1 Solution

您好,

1. ram_app1这一部分就是给CM4的application所使用的ram

2. 请您注意link文件中的标红的这句话:

Ida_Wang_0-1706687579534.png

也就是说RAM的最后2K是不能分配给应用去使用的,这部分会留给系统使用。

也就是说您配置的应用可以使用的RAM最大size为:

0x40000-0x800 = 0x3F800

但是如果ram_app1的size配置为0x3D800, 放开给用户使用的RAM的size为:

0x2400+0x3D800 = 0x3FC00

很明显这个值超过了可配置的最大值,那么应用在运行过程中会修改到系统使用的ram,导致运行异常。

3. 多解释一点,第2条中提到了有一部分使用了0x2400大小的ram,这0x2400有0x2000是给CM0使用的,还有0x400是分配给了ram_common, 用来存放boot noinit相关数据。

View solution in original post

0 Likes
4 Replies
Ida_Wang
Moderator
Moderator
Moderator
100 sign-ins 100 replies posted 25 solutions authored

您好,请问您使用的哪个开发板?创建的哪个示例工程?

0 Likes
lock attach
Attachments are accessible only for community members.
charles-weikeng
Level 3
Level 3
Distributor - Weikeng(GC)
50 sign-ins 10 likes given 10 replies posted

使用CY8C6245AZI_S3D72,工程如附件

0 Likes

您好,

1. ram_app1这一部分就是给CM4的application所使用的ram

2. 请您注意link文件中的标红的这句话:

Ida_Wang_0-1706687579534.png

也就是说RAM的最后2K是不能分配给应用去使用的,这部分会留给系统使用。

也就是说您配置的应用可以使用的RAM最大size为:

0x40000-0x800 = 0x3F800

但是如果ram_app1的size配置为0x3D800, 放开给用户使用的RAM的size为:

0x2400+0x3D800 = 0x3FC00

很明显这个值超过了可配置的最大值,那么应用在运行过程中会修改到系统使用的ram,导致运行异常。

3. 多解释一点,第2条中提到了有一部分使用了0x2400大小的ram,这0x2400有0x2000是给CM0使用的,还有0x400是分配给了ram_common, 用来存放boot noinit相关数据。

0 Likes
Ida_Wang
Moderator
Moderator
Moderator
100 sign-ins 100 replies posted 25 solutions authored
0 Likes