- 博客(155)
- 资源 (23)
- 收藏
- 关注

原创 stm32f407-建立空白模板
keil5-创建工程模板b站还有更多视频教程,都是上课的时候录制下来的。https://www.bilibili.com/video/BV1eE411w72G/
2020-03-28 09:46:50
265
原创 123.rk3399 uboot(2017.09) 源码分析3(2024-09-12)
啃了几天initf_dm,发现啃不动啊,但是后面的函数比这个简单,要不先把简单的做了吧。本文接上一篇。
2024-09-12 16:47:15
1205
原创 122.rk3399 uboot(2017.09) 源码分析2-initf_dm(2024-09-09)
本文主要是dm_init_and_scan函数的分析,这个内容比较复杂,我也是第一次阅读,错误之处在所难免,请多指教。uboot的dm框架需要了解一下,看了几行代码发现看不下去了,有点深啊。我慢慢琢磨一下。
2024-09-12 09:48:39
818
原创 121.rk3399 uboot(2017.09) 源码分析1(2024-09-05)
参考源码 :硬件平台:rk3399辅助工具:linux虚拟机,sourceinsight4,文件浏览器(可以使用samba访问),ultraeidt(查看bin文件比较方便)说明:1.本文是源码分析的第一篇,但是不涉及汇编部分的分析。(汇编部分自行百度)2.由于作者水平有限,错误之处在所难免,请高手及时指正,不胜感激。其实也算是第一次阅读源码,肯定还是有很多的局限,请包含。
2024-09-06 15:31:49
784
原创 120.龙芯2k1000-qt(19)-做了一个qt测试界面
以下是windows下的截图,大概功能就是这样吧,能想到的都想了一遍。主要接口和性能测试,主要针对的是龙芯2k1000.cpu的温度和频率采集不到,就没有放了。
2024-03-27 20:27:58
264
原创 119.龙芯2k1000-pmon(18)-全自动安装linux系统
由它完成: /home/dazhi/program_pmon_ls2k1000 -e /home/dazhi/normal_env.bin就是把append再次还原再次启动,就会引导硬盘中的文件系统了。
2024-03-12 15:58:22
1389
原创 118.龙芯2k1000-pmon(17)-制作ramdisk
目前手上这个设备装系统不容易,总是需要借助虚拟机才能实现。对生产就不太那么友好,能否不用虚拟机就能装Linux系统呢?主要是文件系统的问题需要解决,平时我们一般是用nfs挂载后,然后对硬盘格式化,之后再把文件系统解压到硬盘中,这个过程就必须借助虚拟机,而且还要求虚拟机的nfs和网络必须正常好用。这次我就想到了ramdisk,如果借助ramdisk,那么是否就可以脱离掉虚拟机,用几个命令是否就可以把系统装好呢?好,那么首先得有一个ramdisk才行。没有找到现成的,那就自己做吧。
2024-03-08 17:22:54
1221
原创 117.龙芯2k1000-pmon(16)- linux下升级pmon
c gzrom-dtb.bin 比较flash中的与文件是否相同(只比较0-0xfb000这一段)tools/program-2k1000-pmon 目录下包含源码,还有编译出来的工具。-o gzrom-dtb-new.bin 读出flash中的程序(1m以内)-w gzrom-dtb.bin 直接写入gzrom-dtb.bin。我这做了一些选项 (修改dtb的部分没有实现,暂时好像没有这个需求)gzrom-dtb.bin 与-w的功能相同。-d dtb.bin 写入dtb。
2024-03-08 10:02:10
626
原创 116.龙芯2k1000-pmon(15)- 只修改env部分
既然前面已经研究了gzrom-dtb.bin的生成从这期开始,将研究如何通过linux下的app修改gzrom.bin在flash中的内容。本期第一步,既然要修改env的字节部分,那首先得有一个自己要有env.bin,所以就要想办法生成一个这个文件包含了自己想要的环境变量,但是又不想更新pmon的全部。这里有风险:会造成存档pmon与实际运行的内容不一致的情况!!!(先忽略)
2024-03-05 16:47:49
939
原创 115.龙芯2k1000-pmon(14)- pmon编程优化
通过上面的分析,发现,其实gzrom-dtb.bin其实有很多空白区域,而且空白区域填充的都是0,这对flash来说并不友好,能否把填充的位置改为ff呢,这样编程的速度也会加快,对flash来说也是一种保护呢。但是说实话,感觉烧写的速度并没有明显提高,我没有计时。python脚本改好了:(可能有bug)更新试试,能否启动?
2024-03-04 17:19:42
481
原创 114.龙芯2k1000-pmon(13)- 串口如何用
如果要使用dvo显示接口,那么最多只能有4个串口能用,即0,3,4,5。可以配置为4个串口的模式,那就是每个串口只有发送和接收引脚,不再支持流控这些了。看到串口1,和串口2的定义,意思是引脚复用了,但是并没有看到12个串口 啊!如果要使用12个串口,那么显示接口不可用,每个串口只有发送和接收引脚。全功能是8个引脚,但是只有uart0可用,uart3,4,5不可用。dvo 是显示引脚,如果要显示,那么串口1和串口2都无法使用!如果串口0要配置为4个串口,就是用功能5,默认应该就是功能3。
2024-03-02 09:59:44
1082
原创 113.龙芯2k1000-pmon(12)- pmon源码对env的解析
本文回答前文思考的问题env写的位置是ff000 后面的500字节,这个位置能否改动呢?
2024-03-01 17:07:20
1072
原创 112.龙芯2k1000-pmon(11)- gzrom-dtb.bin 文件的组成
最近又要折腾2k1000的设备了,研究了一下gzrom文件组成部分。pmon的编译可以参考之前的,这里我就不详述了gzrom-dtb.bin的生成命令在Makefile.inc(zloader.ls2k-hj20004目录)中截取出来如下:[ -存在gzrom.bin这个文件,复制这个文件为,相当于重命名了。2. python ../tools/pmonenv.py 用这个脚本来处理。(1.把dtb合并起来,2.加入一些环境变量)
2024-03-01 11:21:56
1046
原创 110.firefly-overlayroot
折腾rk3399的开发板的时候,突然发现overlayroot这个词汇。我移植一下linux5.10的内核到firefly3399开发板,结果启动之后文件系统提示只读!!!这就让我很莫名。后来看到mount文件系统的情况,感觉也是不可思议。百度了一下overlayroot,觉得这个确实还是很不错的功能,尤其是对于嵌入式。整个文件系统是只读,当开始使用的时候,他所有的数据都保存在另一个分区中/userdata目录下。
2023-11-20 16:03:33
936
2
原创 109.firefly-extboot的生成脚本
我在这个脚本中截取extboot的生成部分,自己建立一个sh文件,放在kernel目录中。在firefly的sdk 2.5.1c及以后的版本都是extboot.img(对应表中的extboot)对于sdk 2.5.1c及以后的版本,sdk直接提供命令,build.sh extboot 即可完成。但是之前的并不是,而且一个boot.img,(对应表中rkboot)只要内核编译过,dtb文件也是正确的,自动生成是没啥问题啦。前提也是内核自己编译成功的情况下哈!1.修改自己的dts文件名称!
2023-11-20 10:36:54
669
原创 108.firefly-sdk下生成recovery.img
sdk本身可以自己生成recovery.img,在sdk的目录下,直接运行build.sh recovery,就可以生成了。2. arm64.cpio.gz firefly的sdk中有提供,如果没有,可以找我私信或者下图的qq群下载。本文一则是想研究一下生成的过程,二则主要的就是要能够自己掌控,能够灵活编译出自己想要的recovery.img。看到recovery.img的生成命令之后,就可以灵活调整需要合并的内核,dtb等文件。4. 只要内核被正确编译过,就能生成对应的recovery.img文件。
2023-11-20 09:36:22
270
原创 107.am40刷机折腾记3-firefly镜像的烧写
1. 平台: rk3399 am40 4g+32g2. 内核:firefly的内核(整体镜像)3. 交叉编译工具 :暂时不编译4. 宿主机:ubuntu18.045. 需要的素材和资料:准备的情况:1.am40开发板2.ttl的usb转串口,波特率是1500000.3.12V电源输入4. 两个公头的usb 的线(能插电脑的普通的usb接口)5. RKDevTool_Release_v2.81(版本可以不同)+DriverAssitant_v4.5.zip。
2023-11-13 16:19:10
3634
2
原创 106.am40刷机(linux)折腾记2-前期的准备工作2-软件使用
那么在调试的时候,可以任意的调整Image或者resource.img文件,去验证自己的内核或者dtb文件的正确性。 比如:正常的Image+待验证的dtb,可以验证dtb是否正常 正常的dtb+待验证的Image,看看自己内核的配置是否正常,驱动是否正常?
2023-11-13 14:34:33
2734
原创 105.am40刷机(linux)折腾记1-前期的准备工作1
基本接口:HDMI接口 2个 (一个cpu自带的(尾部),一个是dp转的,目前内核没有驱动起来)千兆网卡 1个usb3.0 接口 2个双频wifi+蓝牙有一个tf卡槽,可用usb2.0 4个串口 4个。
2023-11-10 15:04:59
5381
3
原创 104.c语言中的define的两个模糊点
1. define 是按照从上到下的顺序的。2.1 从定义开始的位置起,之后都有效。#define 必须先定义,否则报错。2.函数体内的define的影响。不受函数作用域的限制。
2023-11-07 11:48:19
112
原创 103.linux5.15.198 编译 firefly-rk3399(2)
1. 平台: rk3399 firefly 2g+16g2. 内核:linux5.15.136 (从内核镜像网站下载)3. 交叉编译工具 gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)4. 宿主机:ubuntu18.045. 需要的素材和资料:链接: https://pan.baidu.com/s/1vUW0wKibbjkXoiHFwhJCsQ?
2023-10-27 08:58:42
1547
原创 102.linux5.15.198 编译 firefly-rk3399(1)
1. 平台: rk3399 firefly 2g+16g2. 内核:linux5.15.136 (从内核镜像网站下载)3. 交叉编译工具 gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)4. 宿主机:ubuntu18.045. 需要的素材和资料:链接: https://pan.baidu.com/s/1vUW0wKibbjkXoiHFwhJCsQ?
2023-10-26 16:04:52
842
原创 101.linux驱动(非ko)加载需要固件的一个小问题
2.1 开始一直是在想应该放在哪个目录才能加载呢?其实方向错了,那个时间点,文件系统还没有挂载,放哪都找不到2.2 对于Direct firmware load forxxxxxxxfailed with error -2 这种类似的错误,应该都可以用这个方法解决。2.3 cdn-dp的问题没有解决,驱动是成功加载了bin文件,但是依然是不能显示,待查吧。
2023-10-26 09:40:44
1103
3
原创 解决linux5.15编译时不生成boot.img 的问题
平台:rk3399 (与平台关系不大)内核 :linux5.15下一个linux5.15的内核,编译的时候目标rk3399-rock960.img 需要在arch/arm64/boot/dts/rockchip/ 目录下存在rk3399-rock960.dts文件 ,如果不存在,可以使用其他的dts文件作为目标。
2023-10-11 11:08:05
1374
原创 linux5.10的一个警告Kernel image misaligned at boot, please fix your bootloader!
平台:rk3399+linux5.10问题:发现启动时有一个内核警告信息后面的数字是我打印的地址信息。不知道这个内核搞一个这样的警告是什么原因,我就没有继续深挖啦。
2023-10-07 14:55:40
960
1
原创 linux下一个iic驱动(按键+点灯)-互斥
硬件部分:1. rk3399开发板,其中的某一路iic,这个作为总线的主控制器2. gd32单片机,其中的某一路iic,从设备。主要是按键上报和灯的亮灭控制。(按键大约30个,灯在键的下面,对应有30个左右。3. iic主要的功能是两个部分,是主动上报按键值,和接收点灯命令(收到后需要发送应答)。4. 该路iic总线上还有一个触摸屏的设备。(不在介绍范围)5.cpu与单片机之间有一个中断io引脚,用于有按键(或者应答)数据时,提示cpu(rk3399)的作用,低电平有效。
2023-07-14 10:14:02
2182
原创 gd32f103vbt6 串口OTA升级-4-从rk3399的串口升级1
能不能把单片机也做到linux系统下升级呢?答案当然是可行的。(这里有个前提,单片机与rk3399的cpu肯定要有通信的通道,目前我这边有两块单片机,一块是使用了串口,一块使用了是iic,暂时没有其他通道调试)。既然单片机能够通过串口升级,那把串口改到rk3399端,那肯定问题也不是很大。那就顺着这个思路开展活动。
2023-05-26 10:30:02
1140
原创 rk3399+qt5的一个测试界面-样稿2-界面图片
请忽略图8的频率问题,这是我在虚拟机中的数据(应该是有问题),实际运行在rk3399的开发板中。又经过了一段时间的打磨,终于又更新了一版。
2023-04-19 16:07:55
229
原创 一个小故障:vTaskGenericNotifyGiveFromISR卡死的解决
但是此时(我的硬件初始化放在了bsp_sys_init函数中了),任务还没有创建!,这个时候去通知任务,是很明显的错误。硬件初始化后有中断,导致进入到中断处理函数,并且调用了vTaskGenericNotifyGiveFromISR,好的,就是这样,记录一下这个问题的排查情况,给自己或者需要的人参考一下。将硬件初始化部分移到任务启动之后,while(1)的前面。用调试器看到停在5120行,不再运行了。这个时候,即使产生中断,任务也能够解决了。
2023-03-09 17:00:36
976
3
原创 stm32f103 外部中断开启后一直触发的问题
问题,只要开启外部中断就一直触发(在中断中使用了串口打印,就是一直打印)。3. 以为是中断标志没有清零,确认是清除的。1. 把对应的外部引脚拉低,还是一直触发(串口一直打印)。2. 关闭对应的外部中断使能初始化,没有任何中断打印了。我看到网上还有写Pinsouce不正确的。AFIO模块(复用功能)需要时钟使能。最后使能该模块,中断即正常了。
2023-02-27 10:39:50
2020
4
原创 2.输入子系统学习-multi-touch-protocol-2023.02
用户空间可以通过注意到最大的支持BTN_TOOL_*TAP事件大于ABS_MT_SLOT轴的absinfo中报告的B类插槽的总数,检测到驱动程序可以报告比插槽更多的总触点。触摸区域(a)的中心是ABS_MT_POSITION_X/Y, 接近手指(b)的中心为ABS_MT_TOOL_X/Y。对于基于压力的装置,ABS_MT_PRESSURE可用于提供接触区域上的压力。如果设备支持,则ABS_MT_TOUCH_MAJOR和ABS_MT_WIDTH_MAJO可分别用于提供接触区域的大小和逼近工具。
2023-02-15 17:25:35
648
原创 1.输入子系统学习-struct input_dev-2023.02
内核版本:4.4.194平台相关:rk3399目前主要是看的触摸屏的代码。
2023-02-14 15:24:40
3836
原创 rk3399-SiS92XX series I2C Touchscreen 驱动
打开#define _DEBUG_REPORT 可以看到触摸上报的数据!特别说明一下,我的触摸屏的坐标进行了调整,请按实际情况进行适配。rk3399 上触摸屏已经能够正常使用了。主要是驱动文件的一个备份。
2023-02-07 15:13:34
555
原创 gd32f103vbt6 串口OTA升级-问题记录-2-平衡OTA弊端
走在路上的时候,我想起了这个OTA的弊端,那我想有没有办法解决呢?其实是有的。那就是我还是把app程序放在flash的最开始的位置,而把OTA的程序放到后面(flash的最后12k)去。这样也带来新的弊端:1.是要小规模的修改单片机的应用程序,在串口增加一条命令,进入到下载模式。2.如果升级失败,单片机将不能启动了,需要调试器的协助。这里倒是可以通过另外的方法解决。比如更新到备份区,升级的时候进行验证等。升级的时候断电就会比较致命。3.OTA程序烧写不方便!!!
2023-02-02 17:16:12
1862
4
LinuxReaderPortable.rar
2020-02-09
CPU自制入门
2017-11-27
51单片机资料宝典-高级应用
2010-01-07
电动智能小车(完整论文)简易自动入库小车设计制作报告
2010-01-06
51单片机课件及源代码
2010-01-06
周立功先生的人生经历
2010-01-01
led16*64点阵汉字时间显示源代码-我的毕业设计
2010-01-01
boot arm 网络上关于boot的编写思路
2009-12-29
杜春雷-arm体系结构与编程 pdf
2009-12-29
数字时钟的LED点阵显示的设计与制作-我的毕业论文
2009-12-25
上海广茂达机器人比赛-搜救机器人
2009-12-25
数字时钟的LED点阵显示的设计与制作_我的毕业设计
2009-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人