打印

[技术问答] 怎么用SFLASH BOOT?

[复制链接]
279|15
跳转到指定楼层
楼主
1. BOOT = 1, UART1_CTS(PD0) = 0, UART1_RTS(PB7) = 1
2. 修改IROM参数(用的是16MB的Flash)

3. 在FLASH DOWNLOAD里面添加SFLASH


目前的提示是:
No Algorithm found for: 06000000H - 06005A2BH
Erase skipped!
Error: Flash Download failed  -  "Cortex-M3"


使用特权

评论回复
沙发
| 2019-11-19 09:15 | 只看该作者
地址是否应该配置在off-chip对应窗口?

使用特权

评论回复
板凳
 楼主 | 2019-11-19 10:51 | 只看该作者
TechHolder 发表于 2019-11-19 09:15
地址是否应该配置在off-chip对应窗口?

这样配置对吗?

使用特权

评论回复
地板
| 2019-11-19 13:08 | 只看该作者
pq113_6 发表于 2019-11-19 10:51
这样配置对吗?

这个我没有用过,你这样试一下

使用特权

评论回复
5
 楼主 | 2019-11-19 13:32 | 只看该作者
TechHolder 发表于 2019-11-19 13:08
这个我没有用过,你这样试一下

试过,不行,提示同样的错误。

使用特权

评论回复
6
| 2019-11-19 17:42 | 只看该作者
地址错了啊,sf的地址是0x60000000,不是0x06000000

使用特权

评论回复
7
 楼主 | 2019-11-20 09:36 | 只看该作者
JasonLee27 发表于 2019-11-19 17:42
地址错了啊,sf的地址是0x60000000,不是0x06000000

晕,就是这个问题,现在可以了,这个功能超赞,哈哈,就看速度了,回头看一下直接从code里面写数据到外设的速度是多少

使用特权

评论回复
8
 楼主 | 2019-11-20 13:47 | 只看该作者
JasonLee27 发表于 2019-11-19 17:42
地址错了啊,sf的地址是0x60000000,不是0x06000000

碰到新问题了,代码执行的很慢?我用下面的代码实验delay ms
while(ms--)
{
        uint16_t i = 20000;
        while(i--)
        {
        }
}
在eFlash时用这个方式delay 10ms是能大概10ms的,然后用sflash时大概用了1.5s,也就是说系统慢了150倍

我还改了SFLASH的频率,如果是SFLASH_DIVIDER_2或SFLASH_DIVIDER_1
CKGEN_SetSFlashClock(SFLASH_CLK_SEL_APB, SFLASH_DIVIDER_1);
速度差不多。
但是如果去掉这句话,就需要花5.5s。
是不是有什么配置需要做?

使用特权

评论回复
9
 楼主 | 2019-11-20 14:20 | 只看该作者
本帖最后由 pq113_6 于 2019-11-27 10:36 编辑
JasonLee27 发表于 2019-11-19 17:42
地址错了啊,sf的地址是0x60000000,不是0x06000000

新的问题,ROM变大到134K的时候,下载出错了
Program Size:
     Ram Size: 0x8000(32KB), used: 3748(11.43799%)
     Rom Size: 0x1000000(16384KB), used: 133912(0.7981777%)
"..\..\..\..\..\output\ac78xx_gcc\ac78xx_NoneOS.elf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:12
Load "..\\..\\..\\..\\..\\output\\ac78xx_gcc\\ac78xx_NoneOS.elf"
Erase Done.
Programming Done.
Contents mismatch at: 60020200H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020202H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020203H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020204H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020206H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020207H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 6002020EH  (Flash=EEH  Required=FFH) !
Contents mismatch at: 6002020FH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020210H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020212H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020213H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020214H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020216H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020217H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 6002021EH  (Flash=EEH  Required=FFH) !
Contents mismatch at: 6002021FH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020220H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020222H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020223H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020224H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020226H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020227H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 6002022EH  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020230H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020232H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020234H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020236H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 6002023EH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 6002023FH  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020240H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020242H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020243H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020244H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020246H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020247H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 6002024EH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 6002024FH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020250H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020252H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020253H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020254H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020256H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020257H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 6002025EH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 6002025FH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020260H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020262H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020263H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020264H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020266H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020267H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 6002026EH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020270H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020272H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020274H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020276H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 6002027EH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 6002027FH  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020280H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020282H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020283H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 60020284H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020286H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020287H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 6002028EH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 6002028FH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020290H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 60020292H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020293H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020294H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 60020296H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 60020297H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 6002029EH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 6002029FH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202A0H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 600202A2H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202A3H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202A4H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202A6H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202A7H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202AEH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202B0H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 600202B2H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202B4H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202B6H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202BFH  (Flash=EEH  Required=FFH) !
Contents mismatch at: 600202C0H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 600202C3H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 600202C4H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202C7H  (Flash=EEH  Required=FFH) !
Contents mismatch at: 600202CFH  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202D0H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 600202D3H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202D4H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202D7H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202DFH  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202E0H  (Flash=ECH  Required=FCH) !
Contents mismatch at: 600202E3H  (Flash=FEH  Required=FFH) !
Contents mismatch at: 600202E4H  (Flash=EFH  Required=FFH) !
Contents mismatch at: 600202E7H  (Flash=FEH  Required=FFH) !
自己写了一套FLM是可以烧录的,不过也有其他问题。官方那个FLM可能只能烧录2MB的?

使用特权

评论回复
10
| 2019-11-21 13:54 | 只看该作者
pq113_6 发表于 2019-11-20 13:47
碰到新问题了,代码执行的很慢?我用下面的代码实验delay ms
while(ms--)
{

外挂serialflash取数据肯定要比内部flash要慢的多,这个是肯定的,但具体慢多少我还没有测过

使用特权

评论回复
11
 楼主 | 2019-11-26 14:37 | 只看该作者
JasonLee27 发表于 2019-11-21 13:54
外挂serialflash取数据肯定要比内部flash要慢的多,这个是肯定的,但具体慢多少我还没有测过 ...

如果用SFLASH BOOT后怎么再访问SFLASH? 现在用SFLASH BOOT后,读不到SFLASH的ID了。

使用特权

评论回复
12
| 2019-11-27 13:59 | 只看该作者
pq113_6 发表于 2019-11-26 14:37
如果用SFLASH BOOT后怎么再访问SFLASH? 现在用SFLASH BOOT后,读不到SFLASH的ID了。

和正常使用eflash boot时是一样操作的

使用特权

评论回复
13
 楼主 | 2019-11-27 15:07 | 只看该作者
JasonLee27 发表于 2019-11-27 13:59
和正常使用eflash boot时是一样操作的

奇怪了,如果BOOT0接VCC进SFLASH BOOT方式,FLASH ID就读不到,如果是接GND就可以读到。另外,我自己写了一套FLM写外部flash,有同样的问题,也就是说程序是一样的,最少代码逻辑没有错。

使用特权

评论回复
14
| 2019-12-4 09:33 | 只看该作者
pq113_6 发表于 2019-11-27 15:07
奇怪了,如果BOOT0接VCC进SFLASH BOOT方式,FLASH ID就读不到,如果是接GND就可以读到。另外,我自己写了 ...

在sflash里面跑code的时候,然后code去访问sflash,是不建议这样操作的。

使用特权

评论回复
15
 楼主 | 2019-12-4 10:55 | 只看该作者
JasonLee27 发表于 2019-12-4 09:33
在sflash里面跑code的时候,然后code去访问sflash,是不建议这样操作的。

嗯,原则上是这样,因为我是自己做了一个FLM,在FLM里面没有办法读写flash,但是官方那个确是可以的,说明有方法可以,不知道官方的FLM代码能不能开放出来看看

使用特权

评论回复
16
| 2019-12-4 13:29 | 只看该作者
pq113_6 发表于 2019-12-4 10:55
嗯,原则上是这样,因为我是自己做了一个FLM,在FLM里面没有办法读写flash,但是官方那个确是可以的,说 ...

flm的代码是运行在RAM空间的,是不影响对sflash的操作的。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表
快3注册邀请码tt 东至县| 万宁市| 夏津县| 大名县| 隆化县| 邳州市| 文登市| 三门县| 芜湖市| 赤水市| 安西县| 襄汾县| 三明市| 富宁县| 中山市| 旺苍县| 天峻县| 青川县| 类乌齐县| 丹阳市| 睢宁县| 蛟河市| 城固县| 张家口市| 姜堰市| 故城县| 云安县| 运城市| 深水埗区| 雷波县| 贺兰县| 临沭县| 舒兰市| 东源县| 永春县| 林口县| 聂拉木县| 莱芜市| 双流县| 吐鲁番市| 三明市|