您尚未登录。

楼主 # 2024-10-18 22:27:37

achinwoo
会员
注册时间: 2021-07-26
已发帖子: 18
积分: 38

T113的福利,分享一个关于T113 SPL以及rt-thread驱动适配的开源仓库

看到rt-thread适配了riscv d1 d1s的bsp,适配了基于hal的驱动,发现T113与D1 pin to pin兼容,所以感觉外设驱动不大,可以提高效率,减小工作量,所以有移植rt-thread的念头,目前已经扣出基于XBOOT大佬的驱动,适配了SPL,引导bootloader,目前已经测试通过,可以引导,很快更新仓库,有感兴趣的小伙伴一起研究!目前仓库更新了spl,bootloader,以及uart,gpio,watchdog驱动,适配了reboot测试完毕稳定后更新上来。目前所有测试基于MQ电路一致的硬件

仓库地址
https://gitee.com/achinwoo/t113-rt-thread-spl-bootloader-hal

1. 万里长征第一步,T113的SPL实现
1.1 拷贝Xboot路径\xboot\src\arch\arm32\mach-t113s3的驱动代码,如下图所示
30b2c655781739ca8cd4fc514b409506.png
1.2 添加mksunxi.c工具,该工具负责计算sum,文件长度按照8K对齐方式,配置引导介质boot_media,比如spinor,spinand,sdmmc启动信息,添加到头中,占用64字节长度,详细阅读改代码,比较简单,容易理解。目前只适配了spinor启动。
添加scons脚本SConstruct,SConscript,
```
SConscript('./mksunxi/SConscript')
SConscript('./SConscript')
```
1.3 修改start.S汇编代码,修改之前代码
```
.align 5
undefined_instruction:
sub lr, lr, #4
save_regs
bl arm32_do_undefined_instruction
restore_regs
.align 5
software_interrupt:
sub lr, lr, #4
save_regs
bl arm32_do_software_interrupt
restore_regs
.align 5
prefetch_abort:
sub lr, lr, #4
save_regs
bl arm32_do_prefetch_abort
restore_regs
.align 5
data_abort:
sub lr, lr, #8
save_regs
bl arm32_do_data_abort
restore_regs
.align 5
not_used:
b .
.align 5
irq:
sub lr, lr, #4
save_regs
bl arm32_do_irq
restore_regs
.align 5
fiq:
sub lr, lr, #4
save_regs
bl arm32_do_fiq
restore_regs

修改之后代码

```

1.4 编译方法,win环境下scons命令即可,编译的log信息
655f989695671513c92ec6603a632f14.png

1.5 产生一个固件名’sunxi-spl.bin’,通过xfel烧录到0地址即可

1.6 烧录后启动的信息,表明SPL成功运行,下步制作bootloader,未完持续….
3aa3ee34a11890baf1aec3cbe4513d28.png

最近编辑记录 achinwoo (2024-10-18 22:46:31)

离线

楼主 #1 2024-10-20 08:51:33

achinwoo
会员
注册时间: 2021-07-26
已发帖子: 18
积分: 38

Re: T113的福利,分享一个关于T113 SPL以及rt-thread驱动适配的开源仓库

SPL采用win环境下编译,需要rtt官方的env支持,去官方下载即可,目前支持py2.7与py3.x所有版本。因env没有gcc x86版本,所以mksunxi.c我直接打包了exe文件,屏蔽了该脚本,有兴趣者自行下载win x86版本gcc,编译*可

最近编辑记录 achinwoo (2024-10-20 11:06:50)

离线

楼主 #2 2024-10-21 12:15:22

achinwoo
会员
注册时间: 2021-07-26
已发帖子: 18
积分: 38

Re: T113的福利,分享一个关于T113 SPL以及rt-thread驱动适配的开源仓库

LCD驱动,寄存器方式
秋风冷飕飕,回家路途更新了lcd驱动,添加了drv_lcd.c, reg_de.h, reg_tcon.h文件,撸寄存器方式实现,特点固件体积小,适配其他分辨率LCD需要修改如下代码即可:

_panel = &lcd_config;
#define DEFAULT_LCD_CONFIG {\
    width:480,\
    height:272,\
    bits_pixel:18,\
    timing:\
    {\
        pixel_clock_hz:10000000,\
        h_front_porch:8,\
        h_back_porch:43,\
        h_sync_len:4,\
        v_front_porch:8,\
        v_back_porch:12,\
        v_sync_len:4,\
        h_sync_active:0,\
        v_sync_active:0,\
        den_active:1,\
        clk_active:0\
    },\
    swap_flag:0,\
    ctp_flag:0\
}

测试命令

lcd_draw_point 240 120

IMG_20241021_113011_20241021-1218.jpg

附带编译的固件
boot-with-pt16M_UART2.zip

最近编辑记录 achinwoo (2024-10-21 18:20:26)

离线

#3 2024-10-22 08:54:49

lanlanzhilian
会员
注册时间: 2021-12-21
已发帖子: 130
积分: 60

Re: T113的福利,分享一个关于T113 SPL以及rt-thread驱动适配的开源仓库

这个mipi能驱动起来吗

离线

#4 2024-10-24 16:20:40

xing
会员
注册时间: 2024-05-27
已发帖子: 6
积分: 56

Re: T113的福利,分享一个关于T113 SPL以及rt-thread驱动适配的开源仓库

楼主准备搞以太网吗?

离线

页脚

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

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