此次在司徒大佬指点下 学习移植SDL1.215版本,过程有点曲折,但还是解决了问题。主要步骤如下:
1。全志sdk的包里原本就有SDL2.X版本的,因此修改/package/multimedia/sdl/Makefile,
Makefile 。
2。执行 m menuconfig 配置中选中sdl。
3。编译会报错,打开/tina_d1_h/out/d1s-nezha/compile_dir/target/SDL-1.2.15/configure.in文件。 注释掉中间代码。
4。修改板级配置文件board.dts disp节点下 fb0_format = <10>;
5。运行 m kernel_menuconfig ,选中Device Drivers > Character devices下Virtual terminal项及Enable character translations in console与 Support for console on virtual termin两项。如图:
6。此时已经编译移植完成了,但是由于全志的sdk默认配置会裁剪系统用不到的库,因此编译出的固件应该是搜不到sdl的库文件,有2个办法,一是添加应用,应用的Makefile中依赖项有SDL。二是关闭裁剪库的选项,这个选项位于 m menuconfig 配置中的Target Image > downsize the root filesystem or initramfs选项,取消此选项。如图:
运行司徒大佬的例程---------:
例程在这里:https://steward-fu.github.io/website/program/sdl/v1.2/cpp_fill.htm
若要正常运行例程 还需要修改一点参数,因为D1S是默认开启双缓冲的,所以要在
screen = SDL_SetVideoMode(320, 240, 16, SDL_HWSURFACE);中添加双缓冲支持项,改为:
screen = SDL_SetVideoMode(320, 240, 16, SDL_HWSURFACE|SDL_DOUBLEBUF);即可
最后来一张运行司徒大佬例程的照片:
最后附上 helloworld程序包。将包解压至 /package目录下 m menuconfig 中选中helloworld,编译后 执行SDL_NOMOUSE=1 /usr/bin/helloworld 即可。
helloworld.tar.xz
在下才疏学浅,有幸得司徒大佬指点才移植成功,其中还有诸多问题尚待解决,还请大家不惜赐教!
lovexulu 发布的最佳帖子
-
D1S移植SDL1.2.15版本
-
回复: nv3052cRGB 720*720屏出现花屏,颜色失真,请问是什么原因
@fans168168 是的,rgb bit0->bit7,bit1->bit6.。。。就会显示成这样。
-
求教如何在Tina linux SDK中调用i2c对lcd初始化?
由于太过菜鸟没能看懂SDK手册中的示例,还请路过的大神指点一下,dts中应该如何配置,在屏驱动中如何调用i2c。
我参照手册示例写了驱动,编译能过,但不能启动,原因是不能调用i2c_smbus_write_byte_data函数写数据。不能启动也没有任何提示 卡在内核启动2行位置。 -
回复: 【复刻麦当劳游戏机】用 ST7789V LCD 在 lichee pi nano (f1c100s)
@bankbank Hello, F1c100 supports MCU display drivers, but to use it correctly, you need to modify the Linux device tree configuration and configure the corresponding driver yourself, including the initialization program for the screen you currently have. This is a relatively complicated process, and if you are familiar with Linux drivers, it may be very simple. Here is a reference image
-
回复: 可以在這裡寫非全志晶片的文章嗎 ?
@steward 你好司徒大佬,我只是用过这几款全志的芯片的菜鸟罢了,对于全志其他芯片也了解不是很多,不过目前所知也就是R128-s3 接近您的要求,但ram仅有32MB。不过个人以为外挂一片wifi+bt的芯片或模块会比较灵活。看上面大佬帖子,想跑精简的Debian桌面,使用T113-s3/s4估计是很合适的芯片,-s4芯片有内置256M DDR3,双核A7。貌似比S3更加合适。
lovexulu 发布的最新帖子
-
回复: 解决那些千奇百怪的 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block 错误
发现一种同样的报错,原因是卡启动det引脚电平不对!这个硬件错误也会导致同样的报错。
-
D1S移植SDL1.2.15版本
此次在司徒大佬指点下 学习移植SDL1.215版本,过程有点曲折,但还是解决了问题。主要步骤如下:
1。全志sdk的包里原本就有SDL2.X版本的,因此修改/package/multimedia/sdl/Makefile,
Makefile 。
2。执行 m menuconfig 配置中选中sdl。
3。编译会报错,打开/tina_d1_h/out/d1s-nezha/compile_dir/target/SDL-1.2.15/configure.in文件。 注释掉中间代码。
4。修改板级配置文件board.dts disp节点下 fb0_format = <10>;
5。运行 m kernel_menuconfig ,选中Device Drivers > Character devices下Virtual terminal项及Enable character translations in console与 Support for console on virtual termin两项。如图:
6。此时已经编译移植完成了,但是由于全志的sdk默认配置会裁剪系统用不到的库,因此编译出的固件应该是搜不到sdl的库文件,有2个办法,一是添加应用,应用的Makefile中依赖项有SDL。二是关闭裁剪库的选项,这个选项位于 m menuconfig 配置中的Target Image > downsize the root filesystem or initramfs选项,取消此选项。如图:
运行司徒大佬的例程---------:
例程在这里:https://steward-fu.github.io/website/program/sdl/v1.2/cpp_fill.htm
若要正常运行例程 还需要修改一点参数,因为D1S是默认开启双缓冲的,所以要在
screen = SDL_SetVideoMode(320, 240, 16, SDL_HWSURFACE);中添加双缓冲支持项,改为:
screen = SDL_SetVideoMode(320, 240, 16, SDL_HWSURFACE|SDL_DOUBLEBUF);即可
最后来一张运行司徒大佬例程的照片:
最后附上 helloworld程序包。将包解压至 /package目录下 m menuconfig 中选中helloworld,编译后 执行SDL_NOMOUSE=1 /usr/bin/helloworld 即可。
helloworld.tar.xz
在下才疏学浅,有幸得司徒大佬指点才移植成功,其中还有诸多问题尚待解决,还请大家不惜赐教! -
回复: AXP2101 DCDC1 输出异常,上电会闪烁一下
@iysheng 如果确定电源工作正常的话,就要检查v853工作状态了,各个结点电压,cpu,sys,ddr,电压是否预期值,如果是预期值,则检查纹波,如果纹波也正常,硬件电路无误,那可以怀疑853可能有损伤了。
-
回复: AXP2101 DCDC1 输出异常,上电会闪烁一下
@iysheng 理论上在otg口连接到主机可以看到全志的端口即证明soc已经启动。基本工作正常。至于串口tx rx电压问题 看看你uart所在的gpio组配置的电压是不是与usb转ttl板子电平匹配,通常保险起见串口板与串口引脚间增加一个1K电阻 1个肖特基二极管连接,防止反灌,防止电平不匹配。
至于引起3.3v不输出的原因,应当检查3.3v负载问题,是不是某些情况下,导致3.3v(dcdc1 过载保护而没有输出呢?,仔细确认导致dcdc1 停止工作的原因,这会保护你的soc。
原官方原理图中 很多都是通过0r电阻来选择soc供电使用的哪一个电源,仔细检查是不是有多个电源输出结点通过0r电阻短接了。 -
回复: AXP2101 DCDC1 输出异常,上电会闪烁一下
@iysheng 做硬件调试 你现在是不确定电源是否正常 还是soc工作不正常?通常应该将 电源部分独立出来单独调试,axp2101 为通用供电芯片,是可以在无初始化状态下工作的,参考手册6.6小结的表 来测量你axp2101 在断开负载 后各部分供电是否按照表格内参数开始工作了。如果没有,就先解决axp2101为何没有正常启动供电的问题,这部分需要严格检查电路,元件参数,焊接,直到芯片可以按照表格内参数正常工作了,再去查找soc为什么没有串口打印的问题。V853在没有启动系统时候确实 是有串口输出CCC ,但是要注意 这个串口可能是固定的串口0 对应的串口。是有固定引脚的,如果你设计中这组引脚复用做其他的,那你在你的debug串口中什么也看不到。这不能确定你的系统是否已经运行起来了。所以 请按照以上步骤 逐步检查 电源硬件 soc硬件 统调。如果说soc无法通过i2c 初始化axp2101 你甚至可以使用 arduino 简单的编写I2C代码 来驱动axp2101。