[其他] 杰发科技---AC7811x系统时钟初始化解析1

[复制链接]
2058|9
 楼主| 我喜欢打游戏 发表于 2022-4-29 13:58 | 显示全部楼层 |阅读模式
系统时钟初始化函数如下:
  1. void SystemInit (void)

  2. {

  3. ①SetEflashClock();

  4. ②SetSysClock();

  5. ③CKGEN_SetAPBClockDivider(APBCLK_DIV);

  6. ④CKGEN_SetSFlashClock(SFLASH_CLK_SEL_APB, SFLASH_DIVIDER_2);

  7. //SPM_EnableLVD(0); //disable LVD if need

  8. }

杰发科技AC7811x系统时钟初始化主要包括:
①解锁eflash函数;
②设置系统时钟,最大值为100MHz,典型值为96MHz;
③设置APB外设时钟分频;
④设置eFlash的时钟;


 楼主| 我喜欢打游戏 发表于 2022-4-29 14:01 | 显示全部楼层
解锁eflash函数如下:
  1. void SetEflashClock(void)
  2. {
  3. uint32_t eflashCKDIV = 0;
  4. uint32_t ctrl2 = 0x0;
  5. int32_t timeout = 500;
  6. do
  7. {
  8. ①WRITEMEM32(Eflash_KEY_REG, SYS_EFLSH_UNLOCK_KEY1);
  9. ①WRITEMEM32(Eflash_KEY_REG, SYS_EFLSH_UNLOCK_KEY2);
  10. timeout–;
  11. } ②while ((READBIT32(EFLASH_INFO_REG, (uint32_t)1 << 31) != 0) && (0 < timeout));
  12. eflashCKDIV = (SYSCLK_FREQ / 1000000 + 2) & 0x7F;
  13. #if (SYSCLK_FREQ_72MHz < SYSCLK_FREQ)
  14. {
  15. timeout = 500;
  16. ctrl2 = 0x13000 | eflashCKDIV;
  17. ③WRITEMEM32(EFLASH_CTRL2_REG, ctrl2);
  18. do
  19. {
  20. timeout–;
  21. } ④while (READBIT32(EFLASH_CTRL2_REG, 1 << 17) && (0 < timeout));
  22. }
  23. #else
  24. {
  25. ctrl2 = 0x3000 | eflashCKDIV;
  26. WRITEMEM32(EFLASH_CTRL2_REG, ctrl2);
  27. }
  28. #endif
  29. ⑤WRITEMEM32(EFLASH_CTRL3_REG, 0x20000);
  30. ⑥WRITEBIT32(EFLASH_CTRL2_REG, (uint32_t)1 << 8);
  31. ⑦WRITEBIT32(EFLASH_INFO_REG, (uint32_t)1 << 31);
  32. }

①:首先向Key 序列寄存器写入0xAC7811和0x1234567解锁片内flash。
②:等待保护信息寄存器的LOCK位为0,若此位为1,表示片内flash为锁定状态。
③:控制 eflash 最大操作时钟频率为72MHz <eflash 控制器时钟频率 < 120MHz,
时钟分频用以产生 1us 脉冲。
④:等待控制寄存器2的CLK_CHG_BSY位为1,表示用户可以将eflash时钟更改为72MHz以上。
⑤:向控制寄存器3写入0x200000(并未在参考手册中找到控制寄存器3的相关信息,无法解释)
⑥:将控制寄存器2的CKDIV_LOCK位置1,锁定对于 eFLASH_CTRL2 的配置。
⑦:将保护信息寄存器的LOCK位置1,锁定片内Flash 控制器。无法对控制寄存器1和控制寄存器2进行改写,如需改写,重复①操作,等待保护信息寄存器的LOCK位为0,方可重新配置控制寄存器1和控制寄存器2。


tpgf 发表于 2022-5-3 13:18 | 显示全部楼层
每次都要进行解锁吗
renzheshengui 发表于 2022-5-3 13:25 | 显示全部楼层
需要严格按照步骤进行吗
wakayi 发表于 2022-5-3 13:36 | 显示全部楼层
所有的key是一样的吗
wowu 发表于 2022-5-3 13:46 | 显示全部楼层
eflash是一种什么种类的flash啊
xiaoqizi 发表于 2022-5-3 14:27 | 显示全部楼层
在什么情况下标志位不置位呢
木木guainv 发表于 2022-5-3 14:36 | 显示全部楼层
时钟一定要控制在这个范围内吗
asmine 发表于 2022-5-5 10:39 | 显示全部楼层
这挺好,支持多一点这种函数解释
海滨消消 发表于 2022-5-16 16:03 来自手机 | 显示全部楼层
这解锁步骤顺序可以变吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

626

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部