打印
[AT32F403/403A]

[经验] AT32F403A如何使用224KB SRAM

[复制链接]
654|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2021-2-23 16:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ArterySW 于 2022-2-17 19:39 编辑

使用AT32F403A的224KB SRAM时有个注意的地方,之前没详细了解就开用,然后结果是肯定的——掉坑里面了,403A默认的配置是96KB,然后需要对用户选择字节进行配置才能使用224KB SRAM

配置方法
1.   使用雅特力的ICP 进行配置(可在官网下载)
(1)当连接上芯片后,点击设备操作->选择字节



(2)选择224KB SRAM
(3)然后点击应用到设备,(可以点击从设备加载,来看当前的配置)


感觉该工具做得很不错,非常的容易上手,这里点个赞

2. 使用软件方法进行配置
可参考雅特力的bsp里project\at_start_f403a\examples\sram\extend_sram

使用以下函数进行配置
void extend_sram(void)
{
  if(((USD->eopb0) & 0xFF) != EXTEND_SRAM)
  {
    /* FLASH解锁 */  
    flash_unlock();

    /* 擦除选择字节 */
    flash_user_system_data_erase();

    /* 设置SRAM大小*/
    flash_user_system_data_program((uint32_t)&USD->eopb0, EXTEND_SRAM);

    /* 系统复位重启生效 */
    nvic_system_reset();
  }
}

#define  EXTEND_SRAM  0xFE //使用224K
#define  EXTEND_SRAM  0xFF //使用96K


该函数放置的位置可以放在SystemInit()函数的程序开始处,如下:
void SystemInit (void)
{
  extend_sram();
….
….
}

雅特力官方的做法是放在了.S文件里,也就是相当于先执行extend_sram()函数,后执行SystemInit(),其实效果是一样的,以下是雅特力官方的做法
Reset_Handler   PROC
                EXPORT  Reset_Handler                       [WEAK]
                IMPORT  __main
                IMPORT  SystemInit
; add for extend sram            
                IMPORT  extend_sram
                MOV32   R0, #0x20001000
                MOV     SP, R0
                LDR     R0, =extend_sram
                BLX     R0
                MOV32   R0, #0x08000000
                LDR     SP, [R0]

                LDR     R0, =SystemInit
                BLX     R0
                LDR     R0, =__main
                BX      R0
                ENDP

配置好了之后就可以愉快的玩耍了,这224K SRAM,嗯..................真香



使用特权

评论回复
沙发
pattywu| | 2021-2-23 17:06 | 只看该作者
只要锄头挥得动,没有挖不了的墙脚。

使用特权

评论回复
板凳
纪国圣| | 2021-2-25 08:35 | 只看该作者
感觉挺麻烦的,为什么不能直接上224K,还需要用户配置这些?

使用特权

评论回复
地板
骑着蜗牛狂奔O| | 2021-2-25 08:49 | 只看该作者
纪国圣 发表于 2021-2-25 08:35
感觉挺麻烦的,为什么不能直接上224K,还需要用户配置这些?

因为可以让用户在大SRAM和大的非零等待区之间自由选择,更灵活

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1227

主题

3251

帖子

0

粉丝