您尚未登录。

楼主 #1 2020-05-20 08:53:12

ly123
会员
注册时间: 2020-05-12
已发帖子: 18
积分: 18

F1C100S程序烧写问题

我看到F1C100S的开发板上烧写程序时需要按下 RESET +FLASH-CS  键才能烧写,请问有没有方法可以不需要使用这两个按键就可以烧写?听说第一次下载可以上电就下载,存储器里有程序的时候就要短接FLASH存储器了。

离线

#2 2020-05-20 09:36:15

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: F1C100S程序烧写问题

这个是因为芯片上电后执行的是BROM的程序(已固化在全志芯片内部),

BROM接管 CPU之后, 会轮询依次 SDC0 => SPI0 NOR => SPI0 NAND 是否有合法的引导程序(boot0)

如果都没有,就进入 USB(FEL), 即USB烧录程序


这里全志其他芯片,比如S3有BOOT SYSTEM启动顺序的流程图可以看: https://whycan.cn/t_3019.html#p25005

但是F1C系列手册没有找到这个图。



所以现在你的问题答案出来, 按下 FLASH-CS 按键的目的是让BROM找不到FLASH, 进而发现不了合法的引导程序(boot0),

让芯片嵌入了USB烧录模式(FEL)





离线

#3 2020-05-20 10:07:23

ling
会员
注册时间: 2020-05-20
已发帖子: 6
积分: 6

Re: F1C100S程序烧写问题

裸机跑代码是可以利用Keil直接下载.bin文件吗

离线

楼主 #4 2020-05-20 10:18:22

ly123
会员
注册时间: 2020-05-12
已发帖子: 18
积分: 18

Re: F1C100S程序烧写问题

(1).使用 micro-usb 数据线连接开发板的 USB-D 接口到电脑 USB 接口,同时按下
开发板【RESET】 +【FLASH-CS】 , 松开【RESET】 , 等电脑识别到设备(设备
插入提示音或者设备管理器有设备接入)后松开【FLASH-CS】 。
(2).点击 keil 界面下的下载按钮,弹出下载窗口,下载窗口显示下载进度,下载完 成
自动关闭窗口,

离线

#5 2020-05-20 10:20:41

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: F1C100S程序烧写问题





离线

楼主 #6 2020-05-20 10:26:52

ly123
会员
注册时间: 2020-05-12
已发帖子: 18
积分: 18

Re: F1C100S程序烧写问题

也就是说要更新程序必须用到【RESET】 +【FLASH-CS】了?有没有其它方法使升级程序时不必用到这两个按键?比如通过修改boot之类的?

最近编辑记录 ly123 (2020-05-20 10:27:17)

离线

#7 2020-05-20 10:29:03

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: F1C100S程序烧写问题

ly123 说:

也就是说要更新程序必须用到【RESET】 +【FLASH-CS】了?有没有其它方法使升级程序时不必用到这两个按键?比如通过修改boot之类的?

五楼的方法,制作特殊TF卡片,让他开机就自动进入USB FEL





离线

楼主 #8 2020-05-20 13:37:08

ly123
会员
注册时间: 2020-05-12
已发帖子: 18
积分: 18

Re: F1C100S程序烧写问题

制作特殊TF卡片,岂不是更麻烦了,本来加个按键就行了,现在要加SD卡,还占用本来就不够用的引脚。

离线

#9 2020-05-20 13:46:24

有梦的地方
会员
注册时间: 2020-03-17
已发帖子: 284
积分: 284

Re: F1C100S程序烧写问题

ly123 说:

制作特殊TF卡片,岂不是更麻烦了,本来加个按键就行了,现在要加SD卡,还占用本来就不够用的引脚。

那你想肿么办?既不想这样,又不想那样,这种通用片片就是这样,除非自己做一颗芯片了。

离线

#10 2020-05-20 13:54:57

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: F1C100S程序烧写问题

ly123 说:

制作特殊TF卡片,岂不是更麻烦了,本来加个按键就行了,现在要加SD卡,还占用本来就不够用的引脚。

如果你是想做

1. 上电/复位不做任何操作就能进入 USB FEL ?

2. IAP 在应用升级?


如果是 1 我觉得恐怕没有别的好办法了。





离线

#11 2020-05-20 17:09:20

Quotation
会员
注册时间: 2018-10-04
已发帖子: 296
积分: 264.5

Re: F1C100S程序烧写问题

ly123 说:

也就是说要更新程序必须用到【RESET】 +【FLASH-CS】了?有没有其它方法使升级程序时不必用到这两个按键?比如通过修改boot之类的?

自己在程序里写代码更新Flash就可以。比如接收从串口或USB来的指令,收到特定的指令则把后面的内容写入Flash。
这种方法不是用sunxi-fel等现成的工具,相当于自定义了一个刷机的通讯协议。

离线

楼主 #12 2020-05-21 10:09:01

ly123
会员
注册时间: 2020-05-12
已发帖子: 18
积分: 18

Re: F1C100S程序烧写问题

Quotation 说:

自己在程序里写代码更新Flash就可以。比如接收从串口或USB来的指令,收到特定的指令则把后面的内容写入Flash。
这种方法不是用sunxi-fel等现成的工具,相当于自定义了一个刷机的通讯协议。

这个刷机方式验证通过了么?

离线

#13 2020-05-21 10:13:39

有梦的地方
会员
注册时间: 2020-03-17
已发帖子: 284
积分: 284

Re: F1C100S程序烧写问题

ly123 说:

这个刷机方式验证通过了么?

RTT就是这么弄的

离线

#14 2020-05-21 11:01:48

ling
会员
注册时间: 2020-05-20
已发帖子: 6
积分: 6

Re: F1C100S程序烧写问题

ly123 说:

(1).使用 micro-usb 数据线连接开发板的 USB-D 接口到电脑 USB 接口,同时按下
开发板【RESET】 +【FLASH-CS】 , 松开【RESET】 , 等电脑识别到设备(设备
插入提示音或者设备管理器有设备接入)后松开【FLASH-CS】 。
(2).点击 keil 界面下的下载按钮,弹出下载窗口,下载窗口显示下载进度,下载完 成
自动关闭窗口,


这个我的设备管理器中显示是未知设备,而且下载代码报错是怎么回事呀。

离线

#15 2020-05-21 11:14:40

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: F1C100S程序烧写问题

ling 说:

这个我的设备管理器中显示是未知设备,而且下载代码报错是怎么回事呀。

要装驱动: https://whycan.cn/t_444.html





离线

#16 2024-05-09 15:09:53

hdlazyhy
会员
注册时间: 2023-02-23
已发帖子: 27
积分: 2

Re: F1C100S程序烧写问题

@哇酷小二
  在社区混了很久了,不能说帖子都看了,也看了八九不离十了,可还是没有搞明白这个芯片的下载究竟是怎样的。个人水平有限,有以下几个问题搞不明白,请不吝赐教!
  1.按照你的描述和我的理解,芯片如果检测不到启动代码就会进入到usb-fel模式下,这时候可以通过sunxi-fel工具通过串口写入启动代码,然后手动输入跳转指令到起始地址,开始运行。不知道我的理解是不是正确?
  2.一直没有搞明白F1C100S的地址分布区域和各自的作用。0x00000000~0x00007FFF 是BROM,可0xFFFF0000~0xFFFF7FFF 也是BROM。这个怎么说呢?根据sunxi-fel的烧写指令都是从0地址开始烧写boot的,难不成0x0000000~0x00007FFF是外置FLASH或SD卡的数据暂存地址?先将外置的启动代码复制到这个区域后,在跳转到这里去运行?那二级引导SPL在哪呢?既然可以直接BOOT启动,为什么还要SPL呢?
  3.在usb-fel模式下,使用sunxi-fel(指令:sunxi-fel.exe -p spiflash-write 0 Blinky.bin)工具烧录是不是直接烧录到了SPI flash中了?为什么复位后仍然识别到usb-fel模式,不能从flash中启动呢?使用的是 F1C100s_with_Keil_RTX4_emWin5-AllwinnerSoC 这个项目的bin文件,或者说这个工程编译出来的代码文件还需要二次加工?

离线

#17 2024-05-09 15:41:17

hdlazyhy
会员
注册时间: 2023-02-23
已发帖子: 27
积分: 2

Re: F1C100S程序烧写问题

此处是您准备引用的发言。@哇酷小二
  在社区混了很久了,不能说帖子都看了,也看了八九不离十了,可还是没有搞明白这个芯片的下载究竟是怎样的。个人水平有限,有以下几个问题搞不明白,请不吝赐教!
  1.按照你的描述和我的理解,芯片如果检测不到启动代码就会进入到usb-fel模式下,这时候可以通过sunxi-fel工具通过串口写入启动代码,然后手动输入跳转指令到起始地址,开始运行。不知道我的理解是不是正确?
  2.一直没有搞明白F1C100S的地址分布区域和各自的作用。0x00000000~0x00007FFF 是BROM,可0xFFFF0000~0xFFFF7FFF 也是BROM。这个怎么说呢?根据sunxi-fel的烧写指令都是从0地址开始烧写boot的,难不成0x0000000~0x00007FFF是外置FLASH或SD卡的数据暂存地址?先将外置的启动代码复制到这个区域后,在跳转到这里去运行?那二级引导SPL在哪呢?既然可以直接BOOT启动,为什么还要SPL呢?
  3.在usb-fel模式下,使用sunxi-fel(指令:sunxi-fel.exe -p spiflash-write 0 Blinky.bin)工具烧录是不是直接烧录到了SPI flash中了?为什么复位后仍然识别到usb-fel模式,不能从flash中启动呢?使用的是 F1C100s_with_Keil_RTX4_emWin5-AllwinnerSoC 这个项目的bin文件,或者说这个工程编译出来的代码文件还需要二次加工?

我重新看了一下原文,这里的第2个疑问中,“0xFFFF0000~0xFFFF7FFF 也是BROM”作者标注的是V3S的地址分布。看的资料多了,漏了太多的细节,不好意思了,特此更正!

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn