RTT 全志D1s跑tina linux

news/2025/3/25 0:27:59/文章来源:https://www.cnblogs.com/shydragon/p/18787273

刚毕业那会抽奖抽了一块RTT的D1S开发板,看了一下打印log就放下吃灰了。跑RT-thread的感觉折腾起来太麻烦了就让他吃灰了。最近手头有一块屏幕和一个2欧的小喇叭打算驱动一下。 正好这块板子也出来好多年了。玩一玩。首先我找到了百问网的哪吒开发板他也是D1S的,直接把他的SDK给搞下来编译,根据开发板的配置正好是个贴片的SD卡,正好有SD卡的配置
直接选6,可以正常烧录,但是烧录后boot完,不进行下一步的打印。我怀疑烧录的地方不对,找了一大圈之后发现机器是能正常启动的。因为ADB这些东西都是正常化的可以执行一些相关的操作。经过一下午的折腾现在终于是可以正常的打印启动的相关log了,现在记录一下操作过程。网上也有相关帖子。主要是参考他们的,在此过程中对全志的SDK进一步的熟悉了。
首先是修改debug的调试串口,这个关乎到生成的镜像文件 /home/shy/d1s/tina-d1-h/device/config/chips/d1s/configs/nezha_sd/sys_config.fex

[uart_para]
uart_debug_port = 3
uart_debug_tx   = port:PG8<5><1><default><default>
uart_debug_rx   = port:PG9<5><1><default><default>

调试产口改到串口3.
改uboot中相关内容
/home/shy/d1s/tina-d1-h/lichee/brandy-2.0/u-boot-2018/configs/sun20iw1p1_defconfig
添加

CONFIG_SPECIFY_CONSOLE_INDEX=y
CONFIG_CONS_INDEX=4	   #说明:这里是UART3+1 = 4  串口号+1 

修改/home/shy/d1s/tina-d1-h/device/config/chips/d1s/configs/nezha_sd/uboot-board.dts
&card0_boot_para { /* Avoid dtc compiling warnings. @TODO: Developer should modify this to the actual value /
/
reg = <0x0 0x2 0x0 0x0>; [> Avoid dtc compiling warnings. @TODO: Developer should modify this to the actual value <] */
device_type = "card0_boot_para";
card_ctrl = <0x0>;
card_high_speed = <0x1>;
card_line = <0x4>;
pinctrl-0 = <&sdc0_pins_a>; //取消这段代码的注释
};
接下来是修改启动介质这个修改后就支持线刷了
/home/shy/d1s/tina-d1-h/lichee/brandy-2.0/u-boot-2018/drivers/sunxi_flash/mmc/sdmmc.c


int sunxi_sprite_mmc_probe(void)
{
#ifndef CONFIG_MACH_SUN50IW11return sdmmc_init_for_sprite(0, 0); //02 这里是从sd卡进行启动
#elseint workmode = uboot_spare_head.boot_data.work_mode;if (workmode == WORK_MODE_CARD_PRODUCT)return -1;elsereturn sdmmc_init_for_sprite(0, 0);
#endif
}

接下来是修改kernel

/home/shy/d1s/tina-d1-h/lichee/linux-5.4/arch/riscv/boot/dts/sunxi/sun20iw1p1.dtsi

chosen {bootargs = "console=ttyS3,115200n8 debug loglevel=7,initcall_debug=1 init=/init earlycon=sbi";stdout-path = "serial0:115200n8";linux,initrd-start = <0x42000000>;linux,initrd-end   = <0x43000000>;};uart3: uart@2500c00 {compatible = "allwinner,sun20i-uart";device_type = "uart3";reg = <0x0 0x02500c00 0x0 0x400>;interrupts-extended = <&plic0 21 IRQ_TYPE_LEVEL_HIGH>;sunxi,uart-fifosize = <256>;clocks = <&ccu CLK_BUS_UART3>;clock-names = "uart3";resets = <&ccu RST_BUS_UART3>;uart3_port = <3>;uart3_type = <4>;status = "okay";};

/home/shy/d1s/tina-d1-h/device/config/chips/d1s/configs/nezha_sd/board.dts

&uart3 {pinctrl-names = "default", "sleep";pinctrl-0 = <&uart3_pins_a>;pinctrl-1 = <&uart3_pins_b>;status = "okay";
};uart3_pins_a: uart3_pins@0 {  /* For EVB1 board */// pins = "PB6", "PB7";pins = "PG8", "PG9";function = "uart3";muxsel = <7>;drive-strength = <10>;bias-pull-up;};uart3_pins_b: uart3_pins@1 {  /* For EVB1 board */// pins = "PB6", "PB7";pins = "PG8", "PG9";function = "gpio_in";};

期间参考了 https://blog.csdn.net/qq_39838924/article/details/136534361
https://www.cnblogs.com/yddeboke/p/17191230.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/903674.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

COMSOL 基础学习笔记

设置网格 软件通过计算网格顶点的数值,推算其他位置的数值。 行函数:移动的波。 二次行函数(除网格顶点外还计算两定点连线中心的值):网格最大长度 \(≤\frac{λ}{6}\) 一次行函数:网格最大长度 \(≤\frac{λ}{12}\) 修改方式:

NSSCTF ROUND#28 Ciallo~(∠・ω )⌒☆ WriteUp

WriteUp 题目信息 来源:NSSCTF 名称:ROUND#28 Ciallo~(∠・ω )⌒☆ 分类:Reverse 描述:无题目链接: https://www.nssctf.cn/contest/732/解题思路 首先使用DIE对文件进行查壳,发现这是一个无壳的64位exe文件。于是使用64位IDA对文件进行反汇编,得到伪代码如下:先一步步…

day35 nfs共享服务器的学习

day35 nfs共享服务器的学习 1.企业集群为什么要共享服务器 没有共享服务器先看一下没有共享服务器的问题 A用户上传啦图片到web01的服务器,然后B用户访问但是负载均衡服务器把请求分发到了web02的服务器上,导致B用户查看不了图片。配置啦共享服务器无论是用户把图片发送给web…

Nature Communications | 全基因组沉默子图谱揭示人类细胞基因调控新机制

摘要总结 这篇文章是2025年1月发表在《Nature Communications》杂志上的一篇研究,标题为“Uncovering the whole genome silencers of human cells via Ss-STARR-seq”。这篇文章通过开发一种名为Ss-STARR-seq的高通量筛选技术,首次在全基因组范围内系统性鉴定了人类细胞中的…

数据结构3

基本数据处理技术概率论与数理统计1-基本概念 概率论与数理统计2-基本数据结构 概率论与数理统计3-基本数据处理技术 基本的数据处理技术 查找 查找的基本概念 在哪里找:查找表是由同一类型的数据元素(或记录)构成的集合,集合中的数据元素之间关系松散。 按什么查找:根据给…

NSSCTF ROUND#28 动态调试 WriteUp

WriteUp 题目信息 来源:NSSCTF 名称:ROUND#28 动态调试 分类:Reverse 描述:无题目链接: https://www.nssctf.cn/contest/732/解题思路 首先使用DIE对文件进行查壳,发现这是一个无壳的32位ELF文件。于是使用32位IDA对文件进行反汇编,得到伪代码如下:为方便阅读伪代码,修…

Video Analysis Assignment

This scene is what the heroine saw from a begin sycarmore at the first time . It was this landscape that awake the heroine of her father’s word: “ A painting is more than the sum of its parts”. This scene is shot from the big sycarmore and it is a estab…

AI一键生成流程图架构图甘特图饼图等可视化图形 原创

AI脑图除了使用文字、语音、图片、文件、网页和视频等一键生成思维导图外,现在也可以支持一键生成流程图、架构图、甘特图等可视化图形了,使用非常简单,告诉AI脑图你想要生成什么图,大概不到两分钟就会制作好并以图片回复给你啦。 支持的可视化图形有: 流程图 例如向AI脑图…

Atcoder ABC398.F - ABCBA 题解 KMP的next函数

题目链接:https://atcoder.jp/contests/abc398/tasks/abc398_f 题目大意: 给你一个字符串 \(s\),要求在字符串 \(s\) 的末尾添加尽可能少的字符使其变成一个回文串。 解题思路: 首先,设输入的字符串为 \(s = s_1 s_2 \ldots s_n\),设字符串 \(s\) 翻转后的字符串为 \(s\)…

方法的定义和调用

//方法的应用 package Base; public class Demon16 { public static void main(String[] args) {// TODO Auto-generated method stubint max=max(10,10);System.out.println(max); } //比大小 public static int max(int num1,int num2) {int result=0;if(num1==num2) {System…

浅说线性差分和树上差分

目录线性差分正常思路差分思路二维差分的定义二维差分的解释例题1 地毯树上差分引入点差分例题1——wwx的出玩分析与解答例题2——松鼠的新家分析与解答边差分例题1——边差分模版分析与解答例题2——运输计划分析与解答 线性差分 当我们这里有\(n\)个数,现在我要对其中一段进…

Spring 事务失效

场景1:代码:执行结果:异常抛出,但是数据没有回滚。 代理对象调用 b() 方法 没有开启事务:普通对象调用a() 方法开启事务:在b() 方法上加入事务注解,开启事务就没问题:本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/18787133