最近因工作忙起来了较少去整F1C100s了,趁今天较空闲,就跟大家分享一下我前段时间把玩的成果吧。可能有点啰嗦,各位看官将就着看吧
前段时间玩的“硬光标”+LVGL演示
因为我也是刚接触到F1C100s不久,之前玩的都是M3,M4,M7内核的单片机,也是靠在挖坑网上参考各位大神的经验才逐渐上手,目前也仅仅会在RTThread这种小实时系统内把玩一下,对RTThread了解的还不是很深,对于linux什么的更是没入门。。。因此我在玩F1C100s的时候,真的就把它当做一个单片机在玩了,大家看看就好。
我先大概说一下我已经实现的功能:
1.开发环境:Windows,基于RTThread v4.0.1官方源码包,使用RTT ENV工具开发。如果要入门的,可以参考燕大侠的RTT新手上路篇https://whycan.cn/t_943.html
2.通过修改链接文件和启动文件,将BootLoader集成到App中,无需额外烧录boot,启动速度快且可控。
这里参考了香酥肉饼的帖子https://whycan.cn/t_3645.html,谢谢这里的大神们的贡献。关于这个我走的弯路可参考我另一个贴关于无boot启动的求助帖。。。
3.将mksunxi和sunxi-fel工具整合到一个批处理,在ENV工具中,实现编译后,直接执行这个批处理就可完成程序下载(当然SOC还是得进入到FEL模式),无需繁琐的各种打包操作,开发速度更快。
3.支持硬件4图层,硬件游标,剥离了原达克罗德驱动中时序控制和图层结构体。
关于LCD驱动这一块参考了达克罗德的帖子https://whycan.cn/t_1457.html,同样谢谢这些大神的贡献
4.移植了LVGL v6.1.1,(目前准备将其配置写入menuconfig中)
5.使用了UART2接收虚拟鼠标数据
6.开启了SDIO(RTT BSP包自带)
RTThread自带的BSP包中已经包含了Clock、UART、GPIO、SDIO的驱动了,再加上FB的驱动,已经可以用作一般项目开发使用了。下面主要说一下我开发的的程序中一些说明和注意事项。
1.第一个是关于BootLoader部分。这部分主要完成的就是将App加载到DDR中运行。App不需要关心在Flash中的地址(App是紧跟着Bootloader代码的),也不需要关心其大小(当然,由于我对DDR的使用区域重新做了划分,我限定App大小是4MB,详细见第4点)。这个Bootloader含有魔术头(BROM通过识别到特定字符才认为Flash中存在可执行代码),在生成bin文件后,需通过mksunxi工具修改一下bootloader头一些校验信息,然后就可以将这个bin通过sunxi-fel直接烧录到Flash地址0的地方开始运行。为了开发方便,我将这两个工具操作写在了一个批处理中,沿用Keil裸机工程中使用的bat名字flashtospi.bat。在ENV中使用scons编译后,直接输入flashtospi.bat就可进行代码烧录(与CMD命令一样,首次输入后,下次可以用方向键调取之前的指令,更快开发)。这里有一个要注意的操作,就是如果flashtospi.bat烧录执行失败(比如忘了使Soc进入FEL模式),那么就不要再直接执行这个批处理了,因为这个批处理会先在此对bin再次进行校验修改,这样bin的校验就不对了。解决办法就是要么修改下代码重新编译(不能直接再次scons,因为代码未变化的话不会重新生成bin),要么就手动执行sunxi-fel,或者就把flashtospi.bat中魔术头修改和下载的两个操作分到两个bat文件,这样每次编译后,先执行魔术头修改,再执行烧录。我是贪方便就放一起了。
2.我重新修改和整理了原达克罗德大神的FB驱动,参考手册,剥离了TCON时序控制部分,和FB的图层管理部分。支持硬件4图层。关于硬件4图层,我想简单说一下我的理解。F1C100s的显示引擎FB支持4个图层的显示与混叠,同时,还可以指定4个图层之下的背景颜色。也就是说,就算这4个图层你一个都不用,还是可以显示纯色背景,而这背景是没有所谓的显存的,通过一个寄存器指定。所有的图层都显示在这个背景色之上。这个背景填充永远是填满整个屏幕的,但是图层不同。这些图层更像是“窗体”,是可以显示在屏幕的任意位置的,大小也任意,这就很灵活了。我剥离出的图层参数结构体如下:
typedef struct
{
uint32_t width;//图层宽度(像素)
uint32_t height;//图层高度(像素)
uint32_t posx;//图层显示相对屏幕左上角坐标X
uint32_t posy;//图层显示相对屏幕左上角坐标Y
uint32_t priority;//该图层显示优先级
uint32_t pipe;//该图层使用混叠管道
uint32_t alpha_value;//该图层透明度(整个图层)
uint32_t alpha_enable;//是否使用图层透明度
uint32_t vram_format;//图层像素数据格式,支持RGB565,RGB888,ARGB32
void * vram;
}lcd_layer_Struct;
前面的4个参数就不多说了,就是图层大小及图层在哪显示。这里说一下几个重点。
第一个就是图层显示优先级。因为支持4个图层,当显示图层多于2个后,必然涉及图层叠加问题,即谁在谁之上。这就是这个优先级控制的。优先级范围0-3,0为优先级最低,也就是显示在最下面,3为显示在最上面。当然优先级0的图层,也是在背景色之上的。这个优先级是可以随时更改的,就像激活窗体显示在最上面一样。参数修改后重新配置下层即可。根据手册说明,当图层数大于2个后,每个图层必须要用自己的唯一优先级,即不能有2个优先级相同,这点在设计时就要考虑好。
第二个就是pipe的使用。当图层透明度使能后,F1C100s有2个管道用于图层混叠,在多于2个图层时,必然至少有一个图层使用相同的管道。当使用相同管道的图层没有重合部分时,每个图层可以按显示优先级从上到下实现图层混叠。若相同通道的图层存在重合部分时,那么重叠部分只有优先级最高的图层能使用这个管道完成其它图层的颜色混叠。当然,如果图层透明度未开启,则图层显示不受这个通道的限制。
第三个就是前面提到的图层透明度。这里必须提一下这个透明度是全局的,由专门一个参数指定的(alpha_value)。每个图层的像素格式虽然可以是ARGB,但在硬件图层混叠时,并不是使用像素的A值,而是使用这个指定的alpha_value,像素的A值被忽略。因此想指望依靠这个硬件图层混叠功能实现类似PNG图片显示的功能就别想了。但这也并不是一无是处,比如做一些显示的淡入淡出、滑动显示等还是很好用的。
最后说一下图层像素数据格式和数据指针。在图层结构体中,可以直接指定数据使用的格式为RGB565、RGB888或ARGB8888,每个图层可以自由使用不同的像素数据格式,相互之间不影响。指针*vram直接指向图层像素数据区,这个数据区就是这个图层的显存,可直接读写操作。这个显存的格式必须和参数vram_format一一对应。也许看到这你就有想法了,每个图层的数据格式可以不同,那么就可以很方便的将这四个图层各司其职:比如层0用作GUI绘制层用RGB565格式,层1用作图片显示ARGB888,层2用作视频
播放RGB888...这样可以避免做更多的数据转换,实现快速显示的效果。
当然除了直接修改结构体参数重新配置各层参数可以实现参数设置外,我也额外提供了一些API接口,随时可以调用,比如控制层显示或不显示的Layer_SetEnable,设置层透明度的Layer_SetAlpha,设置层显示位置的Layer_SetPos等等,可以参考drv_fb.h文件。我在示例工程中也有层的使用范例。同时我默认把layer0放在LCD初始化过程中,作为默认的显示图层。
这里顺便提一下剥离出来的LCD时序控制结构体,这个是与硬件相关的,也很简单,主要填一下屏幕物理像素宽度和高度以及一些时序参数即可。
typedef struct
{
uint32_t pixel_clock_hz;
uint32_t width;
uint32_t height;
uint32_t h_front_porch;
uint32_t h_back_porch;
uint32_t h_sync_len;
uint32_t v_front_porch;
uint32_t v_back_porch;
uint32_t v_sync_len;
uint32_t h_sync_active;
uint32_t v_sync_active;
uint32_t den_active;
uint32_t clk_active;
uint32_t line_per_pixel;
uint32_t rstdefe;
uint32_t rstdebe;
uint32_t rsttcon;
uint32_t backcolor;
} lcd_cfg_Struct;
这里注意一下line_per_pixel这个参数,是指硬件上与LCD连接的数据线宽度,如果连接的是RGB565接口的屏就是16线,RGB666的接口就是18线,RGB888就是24线,这与上面提到的图层像素数据格式无关。rstdefe、rstdebe、rsttcon参考的就是达克罗德大神的值,也没去深究了。backcolor就是上面提到的,最底层的背景色。
3.关于硬件游标,参考我上一个帖子。硬件游标作为独立的一个部件,位于所有图层之上,具备ARGB像素混叠,不过一般不会有人使用它。我是因为没办法触摸操作,所以使用了这个硬件游标来代替,顺便把串口2给用上了。
4.最后再来谈谈一开始说到的程序4MB问题,这是我自己规划的。因为我把DDR前面4M划分为APP运行区(含Data和bss段),紧接着4MB专门用作所有图层的显存区,剩余的24M用于RTThread的堆用于动态内存分配。实际上这也没多大必要。在RTThread BSP源码包的/drivers/board.h中,原本是自动根据APP加载的大小自动把余下的DDR分配给内核进行内存动态分配的,这样就没有APP大小的限制,这样每个图层的显存也通过动态内存来分配即可。而我是直接在APP之后划分了4M作为显存而不经过动态内存分配,因为我考虑到显存一般是永久性分配且比较大,没必要占用内存分配表。当然这样也有风险了,因为万一APP超过4M,我也没检测,这样运行就会出错了。所以不想麻烦的,还是保持官方做法就好。
5.关于LVGL的移植,就很简单了,网上有很多参考,只需实现flush功能就基本可用了。这里遇到一个奇葩,直接从网上下载6.1.1的源码包,用ENV工具编译时在文件lv_draw_rect.c中报错,经过排查是在其中一个画矩形的函数中,有两个局部变量是在函数代码中间定义后再使用。很奇怪的是其它函数也这样做都没问题,然后我把那两个变量放到函数开始后再编译就没问题了。我在程序中开启了图层0,并在图层0上建立了LVGL,所有的LVGL都是在图层0上操作。
6.最后一个是SD卡的问题。RTT官方BSP包中已经写好SD的驱动了,在menuconfig中开启SD设备就行。使能SD卡后RTT会自动建立一个SD卡检测及初始化线程,由于荔枝派SD卡没做插拔检测,因此只上电执行一次SD卡初始化,或者手动调用mmcsd_change触发再次检测,具体可分析一下源码包。SD卡初始化后需要进行挂载操作,可以使用自动挂载或者手动挂载。这里就要注意同步问题了,必须等初始化结束后再进行挂载。使用时发现一个问题,在频繁读SD文件时,容易出现CMD17错误,但过会再读又正常。暂时不知道是卡的原因还是啥,反正我试过3个不同的卡都会这样,而且出错时间点不定,有时很快出现,有时1小时都不出现一次。另外,BSP中的sd driver中使用了软件延时,这个要注意一下如果提高了CPU运行时钟,可能这部分延时需作相应调整。
好了,啰里啰嗦说了一堆,都是个人在近期把玩的结果,可能还有一些地方是理解有误的,还请大家指正。
代码如下。请先在RTT官网下载源码包,然后将附件解压到BSP文件夹中。RTT源码BSP中有很多其他方案的代码,除allwinner_tina外可全部删除。。
希望有更多的人参与进来玩,分享各自成果。下面想入门Linux,希望还有大神带路啊,不胜感激!
allwinner_tina_prj_v1.rar
最近编辑记录 ntmusic (2020-03-26 15:43:30)
离线
对了,这里再上传一个“虚拟鼠标”的上位机软件,使用很简单,打开通信端口后(波特率115200),把鼠标移入触摸区域就行了。拉伸软件边框可以调整触摸区域大小,这个触摸区域就对应了屏幕的触摸区域。为了提高鼠标灵敏度可以将帧率调整为高。其实下发的数据非常简单,就每一帧就5个字节,因为仅仅做试验也不加什么帧头帧尾了,第一字节标识鼠标按压状态(按压或释放)。第二,第三字节作为当前光标位置X坐标,第四第五字节为Y坐标,就这么简单。。。
我使用荔枝派UART2做虚拟鼠标数据接收,引脚是PE7、PE8。
软件在此,感兴趣的可以试试。
NTVisualTouch.rar
离线
友情顶,希望更多的人一起玩RTT。
压缩包下不下来。。。
最近编辑记录 staunchheart (2020-03-26 15:37:31)
离线
感谢分享!
离线
友情顶,希望更多的人一起玩RTT。
压缩包下不下来。。。
奇怪,我上传成功了啊,我试了下确实下不来,不知道咋回事?
离线
非常感谢分享,正用的到!
希望晕哥尽快搞定下载包!!!
离线
奇怪,我上传成功了啊,我试了下确实下不来,不知道咋回事?
我下载了。我想将你的代码与我的
https://whycan.cn/t_3538.html
合并,然后发布到GITEE上。
我这里加了入I2C,GT911,看门狗驱动。将你的启动哪Bootloader合并放进去,是否OK。
离线
对了,这里再上传一个“虚拟鼠标”的上位机软件,使用很简单,打开通信端口后(波特率115200),把鼠标移入触摸区域就行了。拉伸软件边框可以调整触摸区域大小,这个触摸区域就对应了屏幕的触摸区域。为了提高鼠标灵敏度可以将帧率调整为高。其实下发的数据非常简单,就每一帧就5个字节,因为仅仅做试验也不加什么帧头帧尾了,第一字节标识鼠标按压状态(按压或释放)。第二,第三字节作为当前光标位置X坐标,第四第五字节为Y坐标,就这么简单。。。
https://whycan.cn/files/members/3219/3.jpg
我使用荔枝派UART2做虚拟鼠标数据接收,引脚是PE7、PE8。
软件在此,感兴趣的可以试试。
NTVisualTouch.rar
这个能提供源码么?
或者加上帧头帧尾吧,否则只要错一个字节,就永远回不来了。
离线
我下载了。我想将你的代码与我的
https://whycan.cn/t_3538.html
合并,然后发布到GITEE上。
我这里加了入I2C,GT911,看门狗驱动。将你的启动哪Bootloader合并放进去,是否OK。
没问题,欢迎探讨
离线
没问题,欢迎探讨
TKS,,水一贴。希望更多的人加入RTT+F1C100S。
其实我将声音驱动也搞好了,不过用了别人的代码,他不希望公开。
还是尊重他的要求,哪部份我只能去掉。
离线
这个能提供源码么?
或者加上帧头帧尾吧,否则只要错一个字节,就永远回不来了。
放心不会的,接收数据是以数据帧为单位的,帧与帧有间隔的,即使串口受到扰动,只要串口连接恢复正常,通信就恢复正常。唯一问题可能就是错误数据会导致光标乱跳吧,但事实是只要串口连接稳定,是不会有这个问题的。我上面的F1C100s工程里含了这个串口鼠标的代码的,如果你要这个上位机的代码,如下:
NTVisualTouch源码.rar
离线
TKS,,水一贴。希望更多的人加入RTT+F1C100S。
其实我将声音驱动也搞好了,不过用了别人的代码,他不希望公开。
还是尊重他的要求,哪部份我只能去掉。
理解的,毕竟是他的劳动成果。我本来就是在这个论坛学到的知识,有很多大神在默默奉献自己的代码和踩坑经验,自己虽学艺不精,但能给其他人一些帮助是再好不过了。很多时候提供源码不是重点,重点是希望有人能指引一下方向
离线
赞一个!
离线
用鼠标不是触屏是吧
离线
赞一个,感谢分享,真正的干货!
离线
真的是大神啊!!!
谢谢分享!
离线
厉害厉害。感谢无私分享
离线
哈哈,超大内存单片机
离线
感谢无私分享,加紧学习
离线
效果不错:)
离线
感谢无私分享!加紧学习
离线
在rtconfig.py文件中最后一行修改为POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'+' D:\RT\\rt-thread\\bsp\\allwinner_tina\\tools\mksunxi.exe rtthread.bin\n'。这样就可以避免flashtospi.bat重复加魔术头的BUG了。
离线
学习学习
离线
离线
lcd_cfg_Struct lcd_cfg={
.pixel_clock_hz=33000000,
.width=PHY_LCD_WIDTH,
.height=PHY_LCD_HEIGHT,
.h_front_porch=40,
.h_back_porch=87,
.h_sync_len=1,
.v_front_porch=13,
.v_back_porch=31,
.v_sync_len=1,
.h_sync_active=false,
.v_sync_active=false,
.den_active=false,
.clk_active=false,
.line_per_pixel=18,
.rstdefe=46,
.rstdebe=44,
.rsttcon=36,
.backcolor=0x00000000,
} ;
离线
800*480的显示不正常
离线
lcd_cfg_Struct lcd_cfg={
.pixel_clock_hz=33000000,
.width=PHY_LCD_WIDTH,
.height=PHY_LCD_HEIGHT,
.h_front_porch=40,
.h_back_porch=87,
.h_sync_len=1,
.v_front_porch=13,
.v_back_porch=31,
.v_sync_len=1,
.h_sync_active=false,
.v_sync_active=false,
.den_active=false,
.clk_active=false,
.line_per_pixel=18,
.rstdefe=46,
.rstdebe=44,
.rsttcon=36,
.backcolor=0x00000000,
} ;
这个要看屏的说明的,另外
请参考https://whycan.cn/t_2135.html
同时参考https://whycan.cn/t_3611.html
RTT下sys-clock.c
write32(F1C100S_CCU_BASE + CCU_PLL_VIDEO_CTRL,0x81004103);// 0x81004107);//
离线
.rstdefe=46,
.rstdebe=44,
.rsttcon=36,
这3个参数不知道是什么,上面都正确了
离线
非常NB
离线
感谢分享!
离线
非常感谢贵贴,用到呢。
离线
感谢大神之作
离线
感谢大神
离线
刚刚接触F!C100S,看资料,这个芯片的功能非常强大,可不知道厂家咋想的,为啥把文档资料搞得这么神秘,放出来不是能增加芯片的出货量吗?只能在坑里不断的挖大神的帖子了,唉,没办法。
离线
已经能驱动 tiny200s, ,感谢分享!
离线
感谢挖坑岗,感谢各位, 刚刚接触F!C100S, 一直是用 stm32 ,试玩 RTThread ,编译前辈代码,发现 提示
Administrator@ZENZEBIN D:\VM\aa\allwinner_tina_prj_v1
$ scons
scons: Reading SConscript files ...
ImportError: No module named building:
File "D:\VM\aa\allwinner_tina_prj_v1\SConstruct", line 8:
from building import *
不知如何解决
离线
貌似你的 python 缺少 building 组件?
是不是要用 pip install building ???
或者 python -m pip install building ???
离线
刚刚入手F1C100S芯片,谢谢分享。
离线
200s,600能用吗?
离线
应该不是,编译 RT-Thread 自带的 allwinner_tina bsp 是可以成功的
离线
应该不是,编译 RT-Thread 自带的 allwinner_tina bsp 是可以成功的
RT-Thread 自带的 allwinner_tina bsp在哪里可以下载。最近正在学习RTT
离线
离线
跑RTT 480*272刷屏的帧率可以到多少啊
离线
谢谢分享,小白前来学习
离线
正在学习F1C100S,学习下
离线
mark一下,最近在学习F1C100S
离线
楼主优秀,分享经验更是可贵!
离线
做得很漂亮啊,感谢大神分享!!!
离线
手上刚好有个产品要用到界面显示,这个方案成本很有优势,不知道从stm32切换过来难度怎样,一直都是裸跑的程序。
离线
谢谢楼主,最近刚好想要使用2个layer层实现滑屏效果,
离线
感谢挖坑岗,感谢各位, 刚刚接触F!C100S, 一直是用 stm32 ,试玩 RTThread ,编译前辈代码,发现 提示
Administrator@ZENZEBIN D:\VM\aa\allwinner_tina_prj_v1
$ scons
scons: Reading SConscript files ...
ImportError: No module named building:
File "D:\VM\aa\allwinner_tina_prj_v1\SConstruct", line 8:
from building import *不知如何解决
不知道这个问题解决了吗,我编译的时候也出现这个问题
离线
试试pip install building
离线
根据你的说法,argb中a值其实完全无效,debe无法使用这个参数是吧?
离线
试试pip install building
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement building (from versions: none)
ERROR: No matching distribution found for building
试了下,报错,不知道什么原因
最近编辑记录 oldersu (2020-05-05 14:48:16)
离线
感谢分享
离线
这个是真的厉害了
离线
这个进度条有点问题,我的也是一样
离线
https://whycan.cn/files/members/2275/_20200509141249.png
这个进度条有点问题,我的也是一样
找到原因了,用了16位色,启用了阴影绘制就会这样,关闭阴影绘制就正常了
离线
感谢楼主分享,正好下载下来学习一下
离线
一直使用M3 M4 M7单片机开发 和楼主一样 想学习Arm9的开发
离线
F1C100s 这板子做产品成熟吗?
我看资料这么少呢?
离线
要是对把硬编解码搞上就好了
离线
stm32还没玩溜,不知道f1c100s能入门不。。。
离线
新手准备入坑,感谢楼主分享,不知道这颗IC长时间不间断工作是否稳定
离线
感谢分享学习,利用楼主的虚拟坐标移植到其他平台
离线
感谢分享学习,利用楼主的虚拟坐标移植到其他平台
离线
请问楼主的鼠标显示,是怎么显示的,积分太低,无法下载
离线
刚刚接触F1C200S,看资料,这个芯片的功能非常强大,可不知道厂家咋想的,为啥把文档资料搞得这么神秘,放出来不是能增加芯片的出货量吗?只能在坑里不断的挖大神的帖子了,唉,没办法。
离线
谢谢分享,我也试试
离线
还挺流畅,感谢分享
在线
谢谢分享,我也要试试
离线
慢慢学习中吧
离线
学习
离线
只用过M3、M4,试试学习ARM9
离线
这个可不可以在linux3.10 其他全志arm处理器上跑吗?
离线
BSP的USB 不知道會不會跟Linux 的依樣有些bug?
离线
感谢楼主分享的好货,下载下来试试
离线
Mark
离线
为啥我下进去了,按下复位串口连个反应都没有,然后板子自动进入下载模式
离线
执行mksunxi.exe 时候 报出找不到MSVCR120D.dll,找了个msvcr120d.dll和mksunxi.exe放到一块,弄好了。。。。。
离线
执行mksunxi.exe 时候 报出找不到MSVCR120D.dll,找了个msvcr120d.dll和mksunxi.exe放到一块,弄好了。。。。。
换个版本的mksunxi.exe吧,你这个不是mingw编译的;mingw编译的不会依赖这个dll。
用这个:
mksunxi.7z
最近编辑记录 armstrong (2020-06-15 19:05:33)
离线
请问能在spi flash中添加fat分区吗?然后挂载为根系统,把配置和bin格式的图片保存到里面,进行读取?
感觉如果只是用来存固件有点浪费
离线
https://whycan.cn/files/members/2275/_20200509141249.png
这个进度条有点问题,我的也是一样
800 * 480 是怎么解决的 可以分享一下么
离线
我换了一个800*480的屏幕,发现时钟到12M以下,可以显示,但是屏幕在闪,然后我把频率提高到12M以上就花屏了,用xboot代码像素时钟都跑33M没问题,求帮助
离线
我换了一个800*480的屏幕,发现时钟到12M以下,可以显示,但是屏幕在闪,然后我把频率提高到12M以上就花屏了,用xboot代码像素时钟都跑33M没问题,求帮助
我也遇到了同样的问题
离线
牛人+好帖
很想玩一下F1C100S 自己主要在M核上做算法相关东西,很多时候性价比看还是老技术的芯片比较高
离线
我在纠结是学RTT还是直接上手linux,有点迷茫
离线
给个赞,真棒,学习了。
离线
感谢分享,全志的Linux资料真是少的可怜,为了学Linux买了迅为的IMX6ULL,头几天把正点原子,野火,100ask的资料都下了,也是准备拿F1C100S当单片机用,因为SRAM实在小的可怜,
离线
感谢楼主分享,我在Ubuntu Linux下用GCC-ARM生成了rtthread.bin和rtthread.elf,请问各位大神知不知道在Linux下可以怎样flash固件到荔枝派nano板上?
离线
期待楼主移植lvgl 7.0, 目前看上去7.0强大很多
离线
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement building (from versions: none)
ERROR: No matching distribution found for building试了下,报错,不知道什么原因
解决了吗?我的也一样
离线
合并BootLoader后移植达克罗德大神的USB驱动, 烧写到SPI启动, USB最多一次性只能接收8字节及以下的长度的数据,超过8字节, 串口助手就卡死了,不能正常发送 ,但是将代码烧写到DRAM上然后从DRAM开始运行就不存在这种问题,不知道是啥原因。
离线
解决了吗?我的也一样
好吧,解决了!楼主有说。。。
离线
目前看上去7.0强大很多,要是可以支持动画控件就好了。
离线
前面一直在调试linux,但是觉得还是RTT更适合,足够快
离线
友情顶,希望更多的人一起玩RTT。
楼主真的是我们的大神,希望更多人加入这个项目。
共享更多的信息,分享愉悦。
离线
这个非常好,linux版本对于很多项目来说过于庞大,但是裸奔又要反复重造轮子,所以楼主的这个帖子实际上是非常有用的。
离线
牛B
离线
学习学习一下来咯
离线
学习一下,能这么流畅跑界面真的很厉害
离线
合并BootLoader后移植达克罗德大神的USB驱动, 烧写到SPI启动, USB最多一次性只能接收8字节及以下的长度的数据,超过8字节, 串口助手就卡死了,不能正常发送 ,但是将代码烧写到DRAM上然后从DRAM开始运行就不存在这种问题,不知道是啥原因。
看帖子后面,有解决的说明。是端点的sram fifo 配置缺少了
离线
学习一下,真心感谢这些大神的付出。很棒的帖子。
离线
赞。。。。。。
离线
想问下这个方案能不能支持GIF的动态图呢
离线
楼主,请教LVGL如何实现这个滑屏的功能啊?
离线
非常感谢分享
离线
非常感谢分享
离线
离线
离线
离线
使用tiny-R2,默认串口为UART1,bootloader的串口非常容易改,反而RTT的finsh默认串口没修改成功,请问这个在哪里修改啊,我改了几个地方都没效果。
离线
非常感谢分享
离线
最近打算入门下这个芯片,看了楼主的贴子犹如在黑夜看到了曙光,感谢分享。准备入手开发板,遇到问题还请楼主不吝指教。
离线
离线
看了,但是还是无法入手
离线
离线
离线
硬件光标,正是我需要的,谢谢大神。
离线
硬件游标已经用上,谢谢大神。
离线
可以基于RT Studio开发吗
离线
正在学习F1C200s的开发,这个可以基于KEIL开发吗?
离线
离线
使用tiny-R2,默认串口为UART1,bootloader的串口非常容易改,反而RTT的finsh默认串口没修改成功,请问这个在哪里修改啊,我改了几个地方都没效果。
参考官方文档:FinSH 移植
FinSH 的输出:
FinSH 的输出依赖于系统的输出,在 RT-Thread 中依赖 rt_kprintf() 输出。在启动函数 rt_hw_board_init() 中, rt_console_set_device(const char* name) 函数设置了 FinSH 的打印输出设备。
对应串口引脚配置,应该在drv_uart.c里面,
有这样一个结构体,
static rt_err_t uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg);
static rt_err_t uart_control(struct rt_serial_device *serial, int cmd, void *arg);
static int uart_putc(struct rt_serial_device *serial, char c);
static int uart_getc(struct rt_serial_device *serial);
static rt_size_t uart_dma_transmit(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction);
void uart_irq_handler(int irqno, void *param);
const struct rt_uart_ops _uart_ops =
{
uart_configure,
uart_control,
uart_putc,
uart_getc,
uart_dma_transmit
};
可以看出,就是以下这个函数负责配置串口引脚的。
static rt_err_t uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg);
最近编辑记录 LinjieGuo (2022-02-10 14:36:19)
离线
也可以提到rt-thread upstream那边,提过去后好像就可以在rt-thread studio中使用了
离线
感谢楼主!另外给同样入门的填个小坑:楼主的BSP中的PY脚本里有一个路径是需要根据实际改的,否则scons会报错:Error: the toolchain path (E:\work\env\tools\gnu_gcc\arm_gcc\mingw\bin) is not exist, please check 'EXEC_PATH' in path or rtconfig.py.
只需要改一下作者的压缩包中的rtconfig.py文件里面对应路径就可以编译成功了
离线
楼主,做代码加密的话,有啥好的方案吗
离线
吃灰多年,拿起板子继续撸
离线
请问有遇到过长时间老化运行,串口一直有数据接收,偶发性卡死的情况吗?
离线
最近在玩这款芯片,从其它地方找到了些参考代码,原来源头在楼主这里。感谢无私分享。只可惜代码要积分,下载不了。
离线
感谢楼主的分享,下载下来看一看能不能移植到我的板子上.
离线
F1C200S如何接RGB888呢? 貌似只能565 666啊
离线
要是有个keil版本就好了
离线
BootLoader,哪里有源码?
离线
用RTThread官方的SDIO会报错,读取失败,来看看大佬是怎么操作的,跟大佬取经
离线
要是有个keil版本就好了
有keil版本的
离线
Iven 说:要是有个keil版本就好了
有keil版本的
https://gitee.com/LicheePiNano/F1C100S_MDK
只有一个keil工程模板,没有加入RT thread
离线
编不过,是否是rt studio 版本太新了?
离线
使用 scons 也编不过
不过随便写几个变量,rt studio能编过,说明代码没问题
只是链接时找不到这几个变量在哪里定义的
离线
使用 scons 也编不过
https://whycan.com/files/members/1266/13.png不过随便写几个变量,rt studio能编过,说明代码没问题
只是链接时找不到这几个变量在哪里定义的
https://whycan.com/files/members/1266/14.png
scons 需要依赖 rt-thread 的
离线
把包解压到rt-thread\bsp\allwinner_tina_prj_v1位置就可以用scons编译了
rt studio 编译应该替换压缩包的脚本才可以用
离线
把包解压到rt-thread\bsp\allwinner_tina_prj_v1位置就可以用scons编译了
rt studio 编译应该替换压缩包的脚本才可以用
压缩包的链接脚本有指定 __image_start __image_end,rt studio需要把这个链接脚本加进去
离线
谢谢指导,我试试
离线
终于编过去了,确实要放bsp下。感谢 @WangYao
路径有点长:
下载到板子里面也可以运行:
屏幕是白色条纹闪烁
应该是屏的参数不对
继续研究
最近编辑记录 dg (2022-06-21 23:38:04)
离线
有使用硬件jpg解码吗?
离线
哇哦,最近也在用RTT玩 荔枝派nano,参考下楼主
离线
做低成本带屏幕的产品非常好,学习了!
离线
楼主,可以合作吗?对你的屏有兴趣
离线
这篇文章,最适合STM选手,上路的
离线
感谢 ntmusic 的补坑,我刚把mangopi的NAND Flash 下载的坑填了。刚好我也准备用RTT搞个项目,RTT启动的问题正好用到ntmusic 补的坑。
离线
LVGL其实主要是实现心跳和任务管理,其他的都好说
离线
求助!!使用allwinner_tina_prj_v1.rar ,编译成功,下载成功,但就是不启动运行。
开发板用的mangPi-R3,板载 spi nand flash 'GD5F1GQ5UExxG' with 134217728 bytes
开发环境:Windows,基于RTThread v4.1.0官方源码包,使用RTT ENV工具开发
按照 https://whycan.com/t_3958.html --基于RTThread的F1C100s开发(带boot启动+硬件多图层+硬件游标+LVGL+SDIO)里面的方法,
先scons ,编译成功
LINK rtthread.elf
arm-none-eabi-objcopy -O binary rtthread.elf rtthread.bin
arm-none-eabi-size rtthread.elf
text data bss dec hex filename
861939 3404 153848 1019191 f8d37 rtthread.elf
scons: done building targets.
然后用 tools\mksunxi.exe .\rtthread.bin 修改bootloader头一些校验信息
D:\tools\Allwinner\allwinner_tina_prj_v1>tools\mksunxi.exe .\rtthread.bin
bootloader size= 2200
The bootloader head has been fixed
请按任意键继续. . .
最后用批处理烧录
@xfel.exe version
@xfel.exe spinand
@xfel.exe spinand write 0x00000 rtthread.bin
@pause
AWUSBFEX ID=0x00166300(F1C100S/F1C200S/F1C500S) dflag=0x44 dlength=0x08 scratchpad=0x00007e00
Found spi nand flash 'GD5F1GQ5UExxG' with 134217728 bytes
100% [================================================] 845.500 KB, 86.019 KB/s
请按任意键继续. . .
然后没有任何反应,复位后USB依然在FEL模式!!
离线
请问下SDIO读取CMD17错误问题有找到原因了吗
离线
.rstdefe=46,
.rstdebe=44,
.rsttcon=36,这3个参数不知道是什么,上面都正确了
时钟太高了,改成1开头的试试
离线
rtt有tvd的驱动吗
离线
真的需要,现在已经能使用简单的lcd驱动,就是想要多图层,多谢大神!!!
离线
请教下 这里的图形界面是用什么制作的? 如何加入在rtt里面的? 感谢
离线
目前我在用keil+lvgl+freertos的方式运行,但是看我的工程中lvgl的disp_flush这个函数就是通过两个for循环向显存的地址刷数据,我想使用上dma,但是没啥头绪,有什么思路吗
离线
file:///C:/Users/qq116/Desktop/5be7b57efd89dcb57319e6f3e52fedc1.png
tools\mksunxi.exe .\rtthread.bin 提示缺少文件 找不到MSVCR120D.dll
大概是哪里原因
离线
编译的时候提示这个错误怎么弄呢,在bsp中直接执行的scons
离线
目前我在用keil+lvgl+freertos的方式运行,但是看我的工程中lvgl的disp_flush这个函数就是通过两个for循环向显存的地址刷数据,我想使用上dma,但是没啥头绪,有什么思路吗
兄弟,你的keil+lvgl+freertos方式的源码,能发给我一下吗?
谢谢!!!
离线
芯片成本只有十二三块,太好了
离线
MARK一下,现用EMWIN+ucos,LVGL找时间试试
离线
看到倒数第二条回复的时间是2024年,刚想说谁穿越了~~~然后发现的确是2024年了!
顺便问问RTthread和linux在f1c100s上哪个表现或者开发好一点?
离线
RTT官网的的确很“官”,环境搭建就够新人喝一壶。。。。。。所以才来这里求助简单一点的办法
离线
可能熟练后,大家不怎么在意,但是以我写普通用户说明书的经验来看,我还是做一个熟手鄙视的事情:
上传一个在windows下编译RTThread的官方的说明(中文版,按照说明操作即可),其中有一点需要注意,在正式编译前,先运行一次menuconfig ,并选择save.
最近编辑记录 koeijam (2024-02-23 20:22:16)
离线
@koeijam
官方有 RT-Thread Studio 安装好后,自带编译器。创建工程,点点几下就配置好了的。
扩展包也是点选几下就下载好了,很方便
离线
@ntmusic
为什么我3个图层叠加,关闭透明,其中两个图层占用相同的管道也不显示
离线
谢谢,我这边刷界面,开关窗口有残影,试试多图层看是不是会好一些
离线
@staunchheart
请问屏的参数怎么填
离线