以下相关链接由@晕哥 2020-03-16 添加:
---------------
F1C100S下LittleVgl+RTT触摸、GT911、看门狗踩坑记录 by @staunchheart
--作者:燕十三(flyingcys) blog:http://blog.csdn.net/flyingcys
--荔枝派nano/RTT非官方群:711174828
在此感谢
RT-Thread官方成员@uestczyh222提供的荔枝派Nano内核移植、rttbootloader文件、rtota等一系列工具。
挖坑/填坑网 https://whycan.cn/ 站长@晕哥,默默的为我们收集各种荔枝派Nano相关的资讯、工具。
RT-Thread是一款由中国开源社区主导开发的开源嵌入式实时操作系统(遵循GPLv2+许可协议,当标识产品使用RT-Thread时可以按照自由代码非开源的方式应用在商业产品中),它包含实时嵌入式系统相关的各个组件:实时操作系统内核、TCP/IP协议栈、文件系统、libc接口、图形引擎等。
RT-Thread实时操作系统是一个分层的操作系统,它包括了:
底层移植、驱动层,这层与硬件密切相关,由Drivers和CPU移植相构成。
硬实时内核,这层是RT-Thread的核心,包含了内核系统中对象的实现,例如多线程机器调度,信号量,邮箱,消息队列,内存管理,定时器等实现。
组件层,这些是基于RT-Thread核心基础上的外围组件,例如文件系统,命令行shell接口,LwIP轻型TCP/IP协议栈,GUI图形引擎等。
更详细信息及开发文档可在官网https://www.rt-thread.org获取。
RT-Thread代码开源在github及国内的码云,2个仓库同步更新。2018年3月底最新版本为3.0.3。github仓库地址:https://github.com/RT-Thread,码云仓库地址:https://gitee.com/rtthread。
荔枝派Nano采用全志科技F1C100s ARM9内核SOC处理器,主频408MHz,片内DDR达32MByte,
支持UART、USB OTG、SPI、TWI、TP、SD/MMC、LCD、音视频接口等众多外设接口,
是一款不可多得的高配低价开发板。
荔枝派Nano相关资料可在:
https://pan.baidu.com/s/1smzuGS9下载。
同时荔枝派Nano在正式发售之前已经得到了Linux、RT-Thread等操作系统支持。
RT-Thread是率先完成荔枝派Nano移植的嵌入式实时RTOS操作系统,
代码已经合并进RT-Thread官方github仓库,github地址为:
https://github.com/RT-Thread/rt-thread/tree/master/bsp/allwinner_tina
一、开发环境搭建
在windows下使用RT-Thread进行荔枝派Nano开发,推荐使用RT-Thread Env工具。RT-Thread Env工具包括配置器和包管理器,
用来对内核和组件的功能进行配置,对组件进行自由裁剪,对线上软件包进行管理,使得系统以搭积木的方式进行构建,简单方便。
同时Env工具自带RT-Thread开发过程中需要用到的git、python、scons、arm-none-eabi-gcc等多种工具。
Env工具可在RT-Thread官网->“资源”->“下载”页面下载,下载地址:
https://www.rt-thread.org/page/download.html
Env自带的arm-none-eabi-gcc正是荔枝派Nano使用的交叉编译器,Env工具已经帮我们配置好环境变量,可直接使用。
Env工具使用请参照Env工具包内使用说明。
二、RT-Thread编译与运行
1.RT-Thread下载
RT-Thread官方github地址为:https://github.com/RT-Thread/rt-thread。
在Env工具下使用:git clone https://github.com/RT-Thread/rt-thread.git
RT-Thread荔枝派Nano源码文件位于RT-Thread/bsp/allwinner_tina目录。
2.RT-Thread编译
在Env工具下切换目录至RT-Thread/bsp/allwinner_tina,并执行scons命令,即可编译。
正确编译完成后,会自动生成rtthread.bin文件。
3.rttbootloader下载
RT-Thread荔枝派Nano在Windows下更新固件需通过rttbootloader引导,USB更新。rttbootloader下载只需1次即可,完成后即可通过“rtota工具”下载。在开始正式下载之前需要完成以下步骤:
(1)USB驱动安装
荔枝派Nano在Windows下使用USB需要安装驱动,驱动可在QQ群(711174828)空间下载或挖坑/填坑网F1C100S页面(https://whycan.cn/t_444.html)下载。
1)短接flash 1、4脚(当flash中无可引导代码时无需此步骤)
2)连接USB
此时如果在“设备管理器”中发现“无法识别”设备,那就是需要安装USB驱动。驱动名为Zadig。
安装完成后,即可在Windows下发现USB设备。
(2)rttbootloader下载
rttbootloader_f1c100s_v1.0.0.bin是RT-Thread适用于F1C100S的bootloader,使用rttbootloader后即可通过Flash,下载、启动、运行RT-Thread,否则只能下载程序在Ram中运行,掉电后程序即丢失。
当前1.0.0版rttbootloader_f1c100s只支持8MByte及以上的Flash,并且Falsh地址已经固定。期待更新的1.0.1版本发布。
rttbootloader_f1c100s_v1.0.0.bin可在QQ群(711174828)空间下载或挖坑/填坑网F1C100S页面(https://whycan.cn/viewtopic.php?pid=3924#p3924)下载。
rttbootloader下载依赖sunxi-tools。sunxi-tools可在QQ群(711174828)空间下载或挖坑/填坑网F1C100S页面(https://whycan.cn/t_444.html)下载。
1)短接flash 1、4脚(当flash中无可引导代码时无需此步骤)
2)连接USB
3)在evn工具下输入sunxi-fel -p spiflash-write 0 rttbootloader_f1c100s_v1.0.0.bin.bin
此时可看到下载进度条,并等待下载完成。下载完成后请断开flash1、4脚。
4.RT-Thread固件下载
1)OTA固件制作
RT-Thread OTA固件制作依赖“RT-Thread OTA固件打包器”,通过打包器制作出在rttbootloaer下可被识别并更新的固件。
“RT-Thread OTA固件打包器”可在QQ群(711174828)空间下载或挖坑/填坑网F1C100S页面(https://whycan.cn/viewtopic.php?pid=3924#p3924)下载。
其中:
选择固件:为之前RT-Thread源码bsp下allwinner_tina目录编译完成后的rtthread.bin文件。
保存路径:可自由设置保存路径,OTA固件名与选择固件名一致,后缀为.rbl。
固件名称:必须设置为app。
固件版本:可根据实际情况输入。
其他选项为默认。
2)OTA固件更新
上一步骤已完成rttbootloader下载至spiflash中,同时已经生成OTA固件。此时需要将荔枝派Nano启动至rttbootloader状态,否则无法更新OTA固件。
OTA固件更新使用“rtota工具”,该工具通过windows命令行执行,可直接在Env工具下运行。期待windows图形工具发布!!!
“rtota工具”可在可在QQ群(711174828)空间下载或挖坑/填坑网F1C100S页面
(https://whycan.cn/viewtopic.php?pid=3924#p3924)下载
rttbootloader已将Uart0设置为shell串口,Uart0在荔枝派Nano中分别为PE0(Rx0)和PE1(Tx0),请连接至PC,rttbootloader默认波特率为115200。
在没有下载RT-Thread应用固件或在启动3秒内输入键盘任意键,rttbootloader自动进入bootloader。
在rttbootloader模式下,使用env工具,输入命令:rtota -u ./rtthread.rbl,开始下载。
同时输入rtota,可获取工具使用手册
其中:
-u:下载至flash。
-R:下载至ram运行。
5.运行
以上操作已将rtthread.bin下载至荔枝派Nano的flash中,每次重启后,rttbootloader先行运行,然后启动RT-Thread应用。
RT-Thread应用同样使用Uart0设置为shell串口,将Uart0连接至PC,这样就可以看到RT-Thread正常启动后的Logo及荔枝派Nano的时钟运行频率等信息。
在msh命令行状态下,输入help或者TAB键,即可查看当前RT-Thread shell命令。
下集预告:
玩转RT-Thread之荔枝派Nano
二、uart应用
敬请期待!
玩转RT-Thread之荔枝派Nano(全志F1C100S))新手上路.pdf
最近编辑记录 燕十三 (2018-04-07 13:05:15)
离线
一天不来挖坑就错过了这么多~
离线
期待,我的板子快到了
离线
不错的资料,学习了
离线
按照楼主的方法,成功把rttbootloader_f1c100s.bin写入SPI flash中,把Nano的Uart0口跟电脑串口连接(电脑串口设备为115200,8,1,n,n)。给Nano板子重新上电,但串口收到的都是乱码如下图:
这倒底是Nano板子串口有问题呢?还是固件问题呢?如何排查呢!
离线
确定串口线没问题吗?
串口线已确认过没问题,2,3脚短接自发自收正常!且线跟stm32开发板都能正常通信。
离线
rttbootloader下载,没有搞定
离线
现在能编译、下载了。
有没有 在荔枝派Nano上带5寸电容屏的RT-Thread DEMO源码啊?
最近编辑记录 hzpyl (2019-07-15 14:16:32)
离线
rttbootloader下载,没有搞定
烧入rttbootloader,打开串口终端工具。上电,按Enter键进入烧写模式,可以将app.bin烧入。有份详细文档,自己看吧。
离线
这句话以前的都OK了。
在没有下载RT-Thread应用固件或在启动3秒内输入键盘任意键,rttbootloader自动进入bootloader。
这句后,下载用串口而不是USB口吗? 串口软件怎么输入键盘任意键? 什么串口软件可以输入键盘任意键?
离线
看了很多资料,用Xshell, OK
最后一步, Device not found , 不行
离线
最后一步:
使用env工具,输入命令: rtota -u ./rtthread.rbl
WINDOWS XP,WINDOWS 7-64位,都不行。
Device not found
离线
这就有点尴尬了
离线
看了一天,没有找到解决办法。
会不会 不是这个文件 rttbootloader_f1c100s_v1.0.0.bin ?
都是这个帖子下载的:
荔枝派Nano RT-Thread启动文件及RT-Thread固件更新工具
最近编辑记录 hzpyl (2019-07-18 18:50:53)
离线
请问楼主
这个文件rttbootloader_f1c100s_v1.0.0.bin 是从什么地方来的? 有没有更新的?
离线
请问楼主
这个文件rttbootloader_f1c100s_v1.0.0.bin 是从什么地方来的? 有没有更新的?
昨天我给楼主留言了,可能忙没有回应。
https://whycan.cn/t_938.html
https://whycan.cn/files/members/718/rttbootloader_f1c100s_v1_0_0.zip
离线
hzpyl 说:请问楼主
这个文件rttbootloader_f1c100s_v1.0.0.bin 是从什么地方来的? 有没有更新的?昨天我给楼主留言了,可能忙没有回应。
https://whycan.cn/t_938.html
https://whycan.cn/files/members/718/rttbootloader_f1c100s_v1_0_0.zip
晕哥,这2个rttbootloader_f1c100s_v1.0.0.bin,我对比了,是一样的。
离线
zadig安装了没有?
晕哥 说:hzpyl 说:请问楼主
这个文件rttbootloader_f1c100s_v1.0.0.bin 是从什么地方来的? 有没有更新的?昨天我给楼主留言了,可能忙没有回应。
https://whycan.cn/t_938.html
https://whycan.cn/files/members/718/rttbootloader_f1c100s_v1_0_0.zip晕哥,这2个rttbootloader_f1c100s_v1.0.0.bin,我对比了,是一样的。
离线
zadig安装了
WINDOWS 下, 选择目录,右键选择ConEmu Here,
sunxi-fel -p spiflash-write 0 ./firmware.bin 可以下载成功。
离线
最后一步:
使用env工具,输入命令: rtota -u ./rtthread.rblWINDOWS XP,WINDOWS 7-64位,都不行。
Device not found
应该USB驱动问题,可以在设备管理器里删除驱动,重新插拔设备试试
离线
windows xp下,完全可以, zadig有个2.2支持xp的, 换个usb口试试
离线
F1C100S 的RTT Keil/IAR工程怎么生成的?RTT的env下运行scons --target=iar的提示如下--
> scons --target=iar
scons: Reading SConscript files ...
Please make sure your toolchains is GNU GCC!
离线
这个bootloader固件有点奇怪,为什么不直接USB下载,直接用fel下载到某个地址就行了,竟然用串口,还有RTT本来文件就很小,竟然不支持小flash。
离线
最后一步:
使用env工具,输入命令: rtota -u ./rtthread.rblWINDOWS XP,WINDOWS 7-64位,都不行。
Device not found
我也出现了同样的问题,确定串口没问题,
串口调试软件信息:
U-Boot SPL 2018.01-07886-g9716979100-dirty (Mar 29 2018 - 19:56:32)
DRAM: 32 MiB
Trying to boot from sunxi SPI
\ | /
- RT - Thread Operating System
/ | \ 3.0.3 build Apr 5 2018
2006 - 2018 Copyright by rt-thread team
[SFUD]Find a Winbond flash chip. Size is 16777216 bytes.
[SFUD]gd25qxx flash device is initialize success.
[Flash](packages/EasyFlash/src/ef_env.c:144) ENV start address is 0x00000000, size is 1024 bytes.
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x9E9F4976.
[Flash](packages/EasyFlash/src/ef_env.c:780) Verify ENV CRC32 result is OK.
[Flash]EasyFlas
h V3.0.4 is initialize success.
[Flash]You can get the latest version on https://github.com/armink/EasyFlash .
Hit any key to stop autoboot : 3
Hit any key to stop autoboot : 2
Hit any key to stop autoboot : 1
Hit any key to stop autoboot : 0
run application
begin read...
fw error...
msh >
应该是ENV D读不了串口
最近编辑记录 wangzhg1 (2019-08-28 07:26:49)
离线
rtota -u ./rtthread.rbl失败,提示Device not found的原因是板子的USB没有被电脑识别成“RTT Win USB”所以没法通过rtota指令升级,如果前面烧写“rttbootloader_f1c100s_v1.0.0.bin”的步骤都对也看到RTT的启动画面了(rttbootloader起来了),那接下来至少有两种办法让板子被识别出“RTT Win USB”,一种是按REST后三秒内按住boot键不放等待超过三秒板子就会变成“RTT Win USB”设备,另一办法就是REST后输入任意按键,就会进入OTA模式即变成“RTT Win USB”设备。(以上操作F1C100S、F1C200S都适用)
那么问题来了,弱弱的问一句,rt-thread编译好的bin能不能用sunxi-fel通过usb直接烧到flash的指定地址复位即可运行?(燕神的rttbootloader_f1c100s_v1.0.0.bin就可以这么干,我们编译出的rtthread.bin要通过固件打包器打包成.rbl再通过rtota指令去升级才能用,其中有什么玄机?)
离线
各位大神:
我写入rtbootloader后打印
U-Boot SPL 2018.01-07886-g9716979100-dirty (Mar 29 2018 - 19:56:32)
DRAM: 32 MiB
Trying to boot from sunxi SPI
\ | /
- RT - Thread Operating System
/ | \ 3.0.3 build Apr 5 2018
2006 - 2018 Copyright by rt-thread team
[SFUD]Warning: Read SFDP parameter header information failed. The gd25qxx is not support JEDEC SFDP.
[SFUD]Warning: This flash device is not found or not support.
[SFUD]Error: gd25qxx flash device is initialize fail.
ERROR: SPI flash probe failed by SPI device spi00.
[Flash](packages/EasyFlash/src/ef_env.c:144) ENV start address is 0x00000000, size is 1024 bytes.
[SFUD]Error: Flash address is out of bound.
[Flash](packages/EasyFlash/src/ef_env.c:768) Calculate ENV CRC32 number is 0x9E9F4976.
[SFUD]Error: Flash address is out of bound.
[Flash]Error: Erased ENV fault! Start address is 0x00000000, size is 112.
[Flash]EasyFlash V3.0.4 is initialize fail.
[Flash]You can get the latest version on https://github.com/armink/EasyFlash .
[Flash]ENV isn't initialize OK.
[Flash]ENV isn't initialize OK.
[Flash]ENV isn't initialize OK.
run application
begin read...
[SFUD]Error: Flash address is out of bound.
fw error...
会初始化flash失败,请问各位大神有遇到过吗
离线
这个复杂了些,
去 https://whycan.cn/t_3538.html
上面有GIT下载的,不需要RTATO下载,直接用sunfel烧写就好了。
离线
rt-thread官方文档只说明了怎么烧rt-thread系统进入,但那个arm-eabi-gcc工具链还死活找不着,有大佬知道嘛
离线
都是大神啊 值得学习啊 慢慢学吧,我要下载东西
离线
自己下载个就行了
rt-thread官方文档只说明了怎么烧rt-thread系统进入,但那个arm-eabi-gcc工具链还死活找不着,有大佬知道嘛
离线
我这日志算是成功了还是失败了,怎么有[E/MMC] [err]错误
硬件是荔枝派Nano flash芯片是xt25f128b
\ | /
- RT - Thread Operating System
/ | \ 4.0.3 build Jul 2 2020
2006 - 2020 Copyright by rt-thread team
[W/SFUD] [SFUD] Warning: The OS tick(100) is less than 1000. So the flash write will take more time.
[I/SFUD] Find a flash chip. Size is 16777216 bytes.
[I/SFUD] gd25qxx flash device is initialize success.
[I/SFUD] Probe SPI flash gd25qxx by SPI device spi00 success.
periph_get_pll_clk:600000000
cpu_get_clk:408000000
ahb_get_clk:200000000
apb_get_clk:100000000
msh />[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 8 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 5 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 1 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 1 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 1 err
msh />
离线
F1c100s有驱动吗?
离线
烧了一个 rtboot-1.0.3.bin ,但是重启后还是在fel模式,不能进入boot模式
离线
有没有能解码播放 mp3 mp4 的rtt例程
离线
U-Boot SPL 2018.01-05679-g013ca457fd-dirty (Aug 02 2019 - 09:57:28)
DRAM: 32 MiB
Trying to boot from MMC1
Card did not respond to voltage select!
mmc_init: -95, time 22
spl: mmc init failed with error: -95
Trying to boot from sunxi SPI
中间画面略过
Starting logging: OK
Initializing random number generator... done.
Starting network: ip: socket: Function not implemented
ip: socket: Function not implemented
FAIL
Welcome to Buildroot
nano login:
要登录?这个是什么?
离线
最后一步:
使用env工具,输入命令: rtota -u ./rtthread.rblWINDOWS XP,WINDOWS 7-64位,都不行。
Device not found
$ rtota -u ./rtthread.rbl
Device not found
同问
离线
最后一步:
使用env工具,输入命令: rtota -u ./rtthread.rblWINDOWS XP,WINDOWS 7-64位,都不行。
Device not found
我的是:
U-Boot 2018.01-05679-g013ca457fd-dirty (Aug 02 2019 - 09:57:28 +0800) Allwinner Technology
CPU: Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM: 32 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected xt25f128b with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
Setting up a 800x480 lcd console (overscan 0x0)
In: serial@1c25000
Out: serial@1c25000
Err: serial@1c25000
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 0
=>
感觉没有进入bootloader 呢?
离线
还是没看明白怎样在win下下载程序,有一个完成则教程吗?
离线
我这scons编译出现这个问题,咋解决,望大佬解答
离线
我编译的是这个f1c100s_rt-thread-master
离线
711174828这个群搜不到了
离线
@zeesser
看上去像是Bootloader没有下载成功
离线
RT有没有带显示的例程
离线
大神们好,我想我进入了RTT Win USB 但是这个rtota指令会出错,是什么问题呢,
> rtota -u .\firmware1.1.0.rbl
???????: System.IO.FileNotFoundException: ??????????"RTThread.USB.OTA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"?????????????????????
? rtota.Program.Main(String[] args)
后来使用,PersimmonModConfigTool 成功下载进去了。没使用rtota指令。
rttbootloader烧录进去却没有进入RTT WIN USB模式的,可能是没有在三秒内在RTT bootloader进行STOP BOOT操作。
Hit any key to stop autoboot :3 2 1 0!
最近编辑记录 成为大佬 (2022-03-02 17:09:48)
离线
QQ群搜索不到了。那怎么联系楼主呢?
离线
QQ群搜索不到了。那怎么联系楼主呢?
wx:flyingcys
离线
“此时可看到下载进度条,并等待下载完成。下载完成后请断开flash1、4脚。”这一步成功了,下一步就不行了
离线
用rootloader可以用一样的步骤移植吗
离线
Fzc#
3wGB¶±Dþ|UJ½ÿ*** Warning - bad CRC, using default environment\
这是什么情况
离线
燕大大您好,后续2022年购买的荔枝派已经换成XT25的flash,不是winbond的了,用文章中的方法,会显示magic error,能说一下rt bootloader应该用哪个才对吗
离线
离线
我更新了一下 boot的 代码 在burn 路径下的f1c100s_spl_sd_nor_nand_uart1 文件夹,这是boot源码,编译一下就好了 我添加了SD卡驱动 nand flash 驱动
我将nor flash 驱动的spi 速率 降到50M了,nor flash 可以成功启动了,nand flash 的话 boot和读flash是OK的,现在卡在烧录的问题上了,烧录boot会清空rtt 烧录rtt会清空boot,如果想看boot 只烧录boo他就可以看到串口1打印日志,如果像切换串口0,里面有介绍文档
离线
燕大大您好,后续2022年购买的荔枝派已经换成XT25的flash,不是winbond的了,用文章中的方法,会显示magic error,能说一下rt bootloader应该用哪个才对吗
magic error 需要在rtthread 里面的启动文件 头部添加 魔术头 0x55aa55aa 我的gittee 项目更新了
离线
@tangloong
感谢,我再试试
离线
一直出现这错误,[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 8 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 5 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 55 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 1 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 1 err
[E/MMC] [err]:0x00000100, RTO
[E/MMC] mmc cmd 1 err
离线
大佬们,现在RTT编译的bin,到底怎么烧录和运行呢?
离线
@逗倪豌儿
我跟你一样,解决了吗
离线