(全开源)D1s排针版本资料汇总
-
购买链接:https://item.taobao.com/item.htm?id=724377865732
原理图:SCH_D1s_WhycanPI_C3.zip (立创EDA格式)
PCB:PCB_D1s_WhycanPI_C3.zip (立创EDA格式)
pdf原理图:SCH_D1s_WhycanPI_C3_2023-10-17.pdf
D1s测试固件:tina_d1s-whycanpic3_uart4_20230702.7z(不支持线刷)
T113-S3测试固件:tina_t113-whycanpic3_uart4_TF卡固件,支持线刷.imgD1s测试固件:tina_d1s-whycanpic3_uart4_20231208TF卡固件,支持线刷.img
此处下载:whycanpi_handheld_c3_m2 SDK包
source build/envsetup.sh source lunch d1s_whycanpic3-tina make pack
-
烧录软件:AllwinnertechPhoenixCard (卡刷)
-
-
-
-
-
-
-
使用SD卡这个程序跑不下去啊
-
@a17602198728
一楼那个固件是可以用的,我刚刚才测试完。 -
@whycan 确实可以,原来是下载的时候需要选启动,不能选量产。还有个疑问,写的程序咋放进去啊,另外一个USB0和USB1能用么?
-
@a17602198728
OTG 与 HOST 都可以用。自己程序可以放这里:package/busybox-init-base-files/busybox-init-base-files
-
@whycan 这里的CC2没有连接到主处理器上,它咋实现的可以做host和device的啊
-
@a17602198728 此处为保持引脚完整可用,并没有配置一个引脚接入soc,因此并不能动态切换状态,需要软件配置成host或device。而且如果用支持pd模式的充电器供电,误操作cc脚可能会导致烧毁soc。因此本板未配置此功能。
-
这个能直接通过串口PE4,PE5传输写的程序进板子么?
-
-
@whycan 串口通过ADB把电脑的文件传送给板子可以这么用么?
-
@whycan 主要是除了从SD卡把写的程序放进去之外还有其他的简单的方法么?
-
@a17602198728
adb可以用 -
写了个hello world直接就报错,这也太诡异了
-
我用的是ubuntu 20.04,然后用了官网提供的交叉编译器编译的riscv64-glibc-gcc-thead_20200702,然后写了hello world就崩了,这个我要咋修改才能解决啊
-
@a17602198728
静态编译就不会出现这个问题了,命令行加 -static -
@whycan static会程序变大很多啊,这个是编译器还是板子本身的glib版本不一致?有啥法子能从根本上解决一下啊
-
-
@whycan 有适配这个板子的编译器吗?帮忙发一下,我在官网上面找到的编译器
-
-
@whycan 在 (全开源)D1s排针版本资料汇总 中说:
SDK包太大了,35G这要下载到山崩地裂啊,能不能帮忙上传一个编译器
-
有没有D1S的一些操作串口,GPIO等历程啊
-
这个和T113-S3管脚兼容吗
-
我用这个再加上楼主给的tina2.0_patch_d1s_whycanpic3_20230704a.tar,会报错啊
-
@whycan 帮忙看一下啊
-
-
出现这个错误无法启动怎么办??
part_get_info_efi: *** ERROR: Invalid Backup GPT *** [00.852]change working_fdt 0x42aa1da0 to 0x42a81da0 disable nand error: FDT_ERR_BADPATH No reserved memory region found in source FDT [00.892]update dts noncached_alloc(): addr = 0x42b0b7c0 noncached_alloc(): addr = 0x42b0b800 noncached_alloc(): addr = 0x42ef4b80 noncached_alloc(): addr = 0x42ef53c0 geth_sys_init:634: get node 'gmac0' error geth_sys_init fail! [00.912]Board Net Initialization Failed [00.915]No ethernet found. Hit any key to stop autoboot: 0 ## Error: "distro_bootcmd" not defined )
-
-
@cbq123 在 (全开源)D1s排针版本资料汇总 中说:
出现这个错误无法启动怎么办??
part_get_info_efi: *** ERROR: Invalid Backup GPT *** [00.852]change working_fdt 0x42aa1da0 to 0x42a81da0 disable nand error: FDT_ERR_BADPATH No reserved memory region found in source FDT [00.892]update dts noncached_alloc(): addr = 0x42b0b7c0 noncached_alloc(): addr = 0x42b0b800 noncached_alloc(): addr = 0x42ef4b80 noncached_alloc(): addr = 0x42ef53c0 geth_sys_init:634: get node 'gmac0' error geth_sys_init fail! [00.912]Board Net Initialization Failed [00.915]No ethernet found. Hit any key to stop autoboot: 0 ## Error: "distro_bootcmd" not defined )
最终换新版本卡刷软件解决了。
-
@whycan 是的,感谢晕哥
-
@whycan 晕哥,虚拟机中的ROOT账户密码是多杀?
-
-
-
晕哥:贴片的sd nand芯片转tf卡,插在这个板子的tf卡槽里,能不能用usb口刷固件,刷到这个sd nand芯片
-
我买了晕哥的D1s和T113-S3的开发板。
调试了两天,现在把gpio的调试分享给同样是新手朋友。- gpio的调试:
root@TinaLinux:/# cd /sys/class/gpio root@TinaLinux:/sys/class/gpio# ls export gpiochip0 unexport root@TinaLinux:/sys/class/gpio# echo 36 >export root@TinaLinux:/sys/class/gpio# ls export gpio36 gpiochip0 unexport root@TinaLinux:/sys/class/gpio# cd gpio36 root@TinaLinux:/sys/devices/platform/soc@3000000/2000000.pinctrl/gpiochip0/gpio/gpio36# ls active_low edge uevent device power value direction subsystem waiting_for_supplier root@TinaLinux:/sys/devices/platform/soc@3000000/2000000.pinctrl/gpiochip0/gpio/gpio36#
其中GPIO36的36的由来,32x+y
PA:x=0,PB:x=1,以此类推。那么PB4=321+4- 查看引脚分配
root@TinaLinux:~# mount -t debugfs debug /proc/sys/debug root@TinaLinux:~# cd /proc/sys/debug root@TinaLinux:/proc/sys/debug# ls asoc extfrag pwm bdi fault_around_bytes regmap block gpio regulator bluetooth ieee80211 sleep_time clear_warn_once ion sunxi_leds clk memblock suspend_stats device_component mmc0 ubi devices_deferred mmc1 ubifs dispdbg mtd usb dma_buf pinctrl wakeup_sources enc_test pm_qos root@TinaLinux:/proc/sys/debug# cd pinctrl/ root@TinaLinux:/proc/sys/debug/pinctrl# ls 2000000.pinctrl pinctrl-devices pinctrl-handles pinctrl-maps root@TinaLinux:/proc/sys/debug/pinctrl# cd 2000000.pinctrl/ root@TinaLinux:/proc/sys/debug/pinctrl/2000000.pinctrl# ls gpio-ranges pinconf-pins pinmux-functions pins pinconf-groups pingroups pinmux-pins root@TinaLinux:/proc/sys/debug/pinctrl/2000000.pinctrl# cat pinmux-pins Pinmux settings per pin Format: pin (name): mux_owner|gpio_owner (strict) hog? pin 32 (PB0): GPIO 2000000.pinctrl:32 pin 33 (PB1): UNCLAIMED pin 34 (PB2): device 2502000.twi function gpio_in group PB2 pin 35 (PB3): device 2502000.twi function gpio_in group PB3 pin 36 (PB4): GPIO 2000000.pinctrl:36 pin 37 (PB5): UNCLAIMED pin 38 (PB6): device 2500c00.uart function uart3 group PB6 pin 39 (PB7): device 2500c00.uart function uart3 group PB7 pin 40 (PB8): UNCLAIMED pin 41 (PB9): UNCLAIMED pin 42 (PB10): UNCLAIMED pin 43 (PB11): UNCLAIMED pin 44 (PB12): UNCLAIMED pin 64 (PC0): UNCLAIMED pin 65 (PC1): UNCLAIMED pin 66 (PC2): device 4025000.spi function spi0 group PC2 pin 67 (PC3): device 4025000.spi function spi0 group PC3 pin 68 (PC4): device 4025000.spi function spi0 group PC4 pin 69 (PC5): device 4025000.spi function spi0 group PC5 pin 70 (PC6): device 4025000.spi function spi0 group PC6 pin 71 (PC7): device 4025000.spi function spi0 group PC7 pin 96 (PD0): UNCLAIMED pin 97 (PD1): UNCLAIMED pin 98 (PD2): UNCLAIMED pin 99 (PD3): UNCLAIMED pin 100 (PD4): UNCLAIMED pin 101 (PD5): UNCLAIMED pin 102 (PD6): UNCLAIMED pin 103 (PD7): UNCLAIMED pin 104 (PD8): UNCLAIMED pin 105 (PD9): UNCLAIMED pin 106 (PD10): UNCLAIMED pin 107 (PD11): UNCLAIMED pin 108 (PD12): UNCLAIMED pin 109 (PD13): UNCLAIMED pin 110 (PD14): UNCLAIMED pin 111 (PD15): UNCLAIMED pin 112 (PD16): UNCLAIMED pin 113 (PD17): UNCLAIMED pin 114 (PD18): UNCLAIMED pin 115 (PD19): UNCLAIMED pin 116 (PD20): UNCLAIMED pin 117 (PD21): UNCLAIMED pin 118 (PD22): UNCLAIMED pin 128 (PE0): UNCLAIMED pin 129 (PE1): UNCLAIMED pin 130 (PE2): UNCLAIMED pin 131 (PE3): UNCLAIMED pin 132 (PE4): device 2501000.uart function uart4 group PE4 pin 133 (PE5): device 2501000.uart function uart4 group PE5 pin 134 (PE6): UNCLAIMED pin 135 (PE7): UNCLAIMED pin 136 (PE8): UNCLAIMED pin 137 (PE9): UNCLAIMED pin 138 (PE10): UNCLAIMED pin 139 (PE11): UNCLAIMED pin 140 (PE12): GPIO 2000000.pinctrl:140 pin 141 (PE13): GPIO 2000000.pinctrl:141 pin 142 (PE14): UNCLAIMED pin 143 (PE15): UNCLAIMED pin 144 (PE16): UNCLAIMED pin 145 (PE17): UNCLAIMED pin 160 (PF0): device 4020000.sdmmc function sdc0 group PF0 pin 161 (PF1): device 4020000.sdmmc function sdc0 group PF1 pin 162 (PF2): device 4020000.sdmmc function sdc0 group PF2 pin 163 (PF3): device 4020000.sdmmc function sdc0 group PF3 pin 164 (PF4): device 4020000.sdmmc function sdc0 group PF4 pin 165 (PF5): device 4020000.sdmmc function sdc0 group PF5 pin 166 (PF6): GPIO 2000000.pinctrl:166 pin 192 (PG0): device 4021000.sdmmc function gpio_in group PG0 pin 193 (PG1): device 4021000.sdmmc function gpio_in group PG1 pin 194 (PG2): device 4021000.sdmmc function gpio_in group PG2 pin 195 (PG3): device 4021000.sdmmc function gpio_in group PG3 pin 196 (PG4): device 4021000.sdmmc function gpio_in group PG4 pin 197 (PG5): device 4021000.sdmmc function gpio_in group PG5 pin 198 (PG6): device 2500400.uart function uart1 group PG6 pin 199 (PG7): device 2500400.uart function uart1 group PG7 pin 200 (PG8): device 2500400.uart function uart1 group PG8 pin 201 (PG9): device 2500400.uart function uart1 group PG9 pin 202 (PG10): GPIO 2000000.pinctrl:202 pin 203 (PG11): device soc@3000000:rfkill@0 function clk_fanout1 group PG11 pin 204 (PG12): GPIO 2000000.pinctrl:204 pin 205 (PG13): device 2008000.ledc function ledc group PG13 pin 206 (PG14): GPIO 2000000.pinctrl:206 pin 207 (PG15): GPIO 2000000.pinctrl:207 pin 208 (PG16): UNCLAIMED pin 209 (PG17): UNCLAIMED pin 210 (PG18): UNCLAIMED root@TinaLinux:/proc/sys/debug/pinctrl/2000000.pinctrl#
- 查看寄存器
root@TinaLinux:/proc/sys/debug/pinctrl/2000000.pinctrl# cd /sys/class/sunxi_dump root@TinaLinux:/sys/class/sunxi_dump# ls compare help standby_dump_ctrl write dump rw_byte test root@TinaLinux:/sys/class/sunxi_dump# echo 0x02000034 >dump root@TinaLinux:/sys/class/sunxi_dump# cat dump 0x000fffff root@TinaLinux:/sys/class/sunxi_dump# echo 0x02000034 0x0 >write root@TinaLinux:/sys/class/sunxi_dump# cat dump 0x00000000 root@TinaLinux:/sys/class/sunxi_dump#
- adb连接
晕哥的板子有一个usb转ttl的桥,可以用putty进行连接。
这个板子同时支持adb调试
1、下载adb工具包
2、查看是否连接
D:\platform-tools>adb devices List of devices attached 20080411 device
3、进入板子的shell
D:\platform-tools>adb -s 20080411 shell BusyBox v1.27.2 () built-in shell (ash) ------run profile file----- _____ _ __ _ |_ _||_| ___ _ _ | | |_| ___ _ _ _ _ | | _ | || | | |__ | || || | ||_'_| | | | || | || _ | |_____||_||_|_||___||_,_| |_| |_||_|_||_|_| Tina is Based on OpenWrt! ---------------------------------------------- Tina Linux (Neptune, 61CC0487) ---------------------------------------------- mount: mounting none on /sys/kernel/debug failed: Device or resource busy root@TinaLinux:/#
-
@whycan 刚买了笔记本电脑,专门编译sdk,不想折腾,安装什么版本的,是ubuntu18.04吗?
-
不想折腾的话,就装虚拟机。
-
@whycan 虚拟机的镜像还没下完,你网盘里的sdk,我已经下下来了。
虚拟机里的是uart4的固件吗?
t113s3和d1是一个sdk吗?我买了两个板子 -
t113排针版跑主线linux分享:
平台:ubuntu22.04qmycy@x250:~$ uname -a Linux x250 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
/usr/include/linux/version.h 5.15.xxx
#define LINUX_VERSION_CODE 331651 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) #define LINUX_VERSION_MAJOR 5 #define LINUX_VERSION_PATCHLEVEL 15 #define LINUX_VERSION_SUBLEVEL 131
arm-linux-gnueabihf-gcc,交叉编译器
Supported LTO compression algorithms: zlib zstd gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
arm-none-eabi-gcc
Thread model: single Supported LTO compression algorithms: zlib gcc version 10.3.1 20210621 (release) (15:10.3-2021.07-4)
一、awboot编译
排针版,有一个usb2ttl,默认是uart4
修改board.h--- /home/qmycy/aw0/awboot/board.h 2023-12-19 07:54:00.492240964 +0800 +++ /home/qmycy/aw1/awboot/board.h 2023-12-19 09:37:19.145093802 +0800 @@ -6,7 +6,7 @@ #include "sunxi_usart.h" #include "sunxi_sdhci.h" -#define USART_DBG usart4_dbg +#define USART_DBG usart5_dbg #define CONFIG_BOOT_SPINAND #define CONFIG_BOOT_SDCARD
修改board.c
--- /home/qmycy/aw0/awboot/board.c 2023-12-19 07:54:49.208311737 +0800
+++ /home/qmycy/aw1/awboot/board.c 2023-12-19 09:37:19.145093802 +0800
@@ -27,13 +27,6 @@
.gpio_rx = {GPIO_PIN(PORTB, 7), GPIO_PERIPH_MUX7},
};-sunxi_usart_t usart4_dbg = {
- .base = 0x02501000,
- .id = 4,
- .gpio_tx = {GPIO_PIN(PORTE, 4), GPIO_PERIPH_MUX3},
- .gpio_rx = {GPIO_PIN(PORTE, 5), GPIO_PERIPH_MUX3},
-};
sunxi_spi_t sunxi_spi0 = {
.base = 0x04025000,
.id = 0,二、linux内核为evlers修改后的源码编译
设备树
1 、改alias
aliases {
ethernet0 = &rtl8189fs;
mmc0 = &mmc0;
serial1 = &uart1;
serial4 = &uart4;
serial5 = &uart5;
};
2、改内核启动参数
chosen {
stdout-path = "serial4:115200n8";
bootargs = "mem=128M cma=72M root=/dev/mmcblk0p3 rootfstype=ext4 init=/linuxrc rw rootwait console=tty0 console=ttyS4,115200";
};3、改pio
uart4_pe4_pins: uart4-pe4-pins {
pins = "PE4", "PE5";
function = "uart4";
};
uart5_pb4_pins: uart5-pb4-pins {
pins = "PB4", "PB5";buildroot:
buildroot-2022.02.5
改国内源
BR2_BACKUP_SITE="http://sources.buildroot.net"
BR2_KERNEL_MIRROR="https://mirror.bjtu.edu.cn/kernel/"
BR2_GNU_MIRROR="http://mirrors.nju.edu.cn/gnu/"
BR2_LUAROCKS_MIRROR="http://luarocks.cn"
BR2_CPAN_MIRROR="http://cpan.nju.edu.cn/CPAN/"
buildroot使用自编交叉编译器,linux的version.h版本最好跟主机的交叉编译器版本对上
BR2_DEFAULT_KERNEL_HEADERS="5.15.53"awboot是用arm-none-eabi-gcc编译的依赖性弱。
linux内核调用主机本地交叉编译器和buildroot可以设定自编交叉编译器版本要对上。不然会导致稀奇古怪的问题,浪费时间。这个是linux头痛的问题。sd卡分区:
mbr 3个区,
第一个区不用,引导用,brom会读取这个区引导awboot
第二个区fat32,内核以及dtb
第三个区ex4,buildroot参考:
MangoPi Dual T113 主线内核编译记录
在wsl下开发T113的主线linux
T113-S3主线Linux支持方案
T113 AWboot 编译指南
awboot下载地址
Evlers改好的linux 6.0.1下载地址 -
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号