[技术问答]

怎么用SFLASH BOOT?

[复制链接]
7883|18
手机看帖
扫描二维码
随时随地手机跟帖
TechHolder| | 2019-11-19 09:15 | 显示全部楼层
地址是否应该配置在off-chip对应窗口?

使用特权

评论回复
pq113_6|  楼主 | 2019-11-19 10:51 | 显示全部楼层
TechHolder 发表于 2019-11-19 09:15
地址是否应该配置在off-chip对应窗口?

这样配置对吗? 1.png

使用特权

评论回复
TechHolder| | 2019-11-19 13:08 | 显示全部楼层

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

使用特权

评论回复
pq113_6|  楼主 | 2019-11-19 13:32 | 显示全部楼层
TechHolder 发表于 2019-11-19 13:08
这个我没有用过,你这样试一下

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

使用特权

评论回复
JasonLee27| | 2019-11-19 17:42 | 显示全部楼层
地址错了啊,sf的地址是0x60000000,不是0x06000000

使用特权

评论回复
pq113_6|  楼主 | 2019-11-20 09:36 | 显示全部楼层
JasonLee27 发表于 2019-11-19 17:42
地址错了啊,sf的地址是0x60000000,不是0x06000000

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

使用特权

评论回复
pq113_6|  楼主 | 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。
是不是有什么配置需要做?

使用特权

评论回复
pq113_6|  楼主 | 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的?

使用特权

评论回复
JasonLee27| | 2019-11-21 13:54 | 显示全部楼层
pq113_6 发表于 2019-11-20 13:47
碰到新问题了,代码执行的很慢?我用下面的代码实验delay ms
while(ms--)
{

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

使用特权

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

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

使用特权

评论回复
JasonLee27| | 2019-11-27 13:59 | 显示全部楼层
pq113_6 发表于 2019-11-26 14:37
如果用SFLASH BOOT后怎么再访问SFLASH? 现在用SFLASH BOOT后,读不到SFLASH的ID了。

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

使用特权

评论回复
pq113_6|  楼主 | 2019-11-27 15:07 | 显示全部楼层
JasonLee27 发表于 2019-11-27 13:59
和正常使用eflash boot时是一样操作的

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

使用特权

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

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

使用特权

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

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

使用特权

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

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

使用特权

评论回复
zsm123| | 2021-8-28 20:07 | 显示全部楼层
咨询下, ac781x 对支持外部启动的 SPI FLASH 的信号有没有限制?
开发板上给的芯片是 w25q16, 我用其他家的可以不可以? flash 的大小有没有限制?
@JasonLee27

使用特权

评论回复
单片小菜| | 2021-9-1 09:32 | 显示全部楼层
这样配置,应该是没有问题的。很不错的。

使用特权

评论回复
你这样尝试,没有任何的毛病,可以的。

使用特权

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

本版积分规则

36

主题

284

帖子

2

粉丝