- 博客(67)
- 资源 (15)
- 收藏
- 关注
原创 uboot源码分析uboot启动流程,uboot-CMD命令调用关系
uboot的最终目的是引导启动内核加载系统,根据这个线索我们可以首先找到uboot引导内核的main函数,查看系统引导的执行跳转的函数 main_loop。下面对uboot函数的调用关系和主要调用函数进行分析。
2024-09-09 18:23:29 1026
原创 libgpiod控制IO口状态
从Linux4.8开始,可以使用libgpio软件包,而以往通过sysfs的GPIO控制方式逐渐被淘汰。libgpio是linux内核提供的GPIO控制库,允许用户在用户空间控制GPIO引脚,包括设置引脚的方向(输入/输出)、读取引脚状态等。gpiolib的头文件位于/usr/include/gpiod.h,它定义了用户访问GPIO的函数、结构和符号。根据调用其中的函数,可以完成对GPIO的控制。如果端口已经被sysfs使用( sys/class/gpio),则不能使用GPIO控制IO口状态。
2024-08-30 11:30:32 274
原创 编写驱动程序,测试确认流程
在Ubuntu系统中,编写驱动程序,权限控制要比rootfs最小根文件系统要严一点,需要逐步确认一下,否则没有权限不能运行成功。Makefile声明内核的路径如下,声明后直接make,就可以在arm64上编译驱动程序。编写一个驱动程序,测试需要确认的流程,根据需求查看卡在那个步骤。可以通过dmesg 查看内核打印信息,了解驱动是否加载成功。加载成功,可以通过lsmod查看当前系统加载的模块。当驱动程序编译完成后,首先需要查看驱动程序的权限。在做驱动测试之前,修改驱动的权限。使用sudo权限加载驱动程序。
2024-08-23 18:02:29 268
原创 配置Ubuntu22-linux内核支持nfs v2
得知当前内核版本不支持 nfs V2协议。需要安装一个支持 nfs v2的内核版本。在nfs配置文件中修改nfsd 相关配置,使nfs支持upd协议和vers2版本。查看所有的信息,当前系统版本不支持 nfs V2协议。查看是否支持当前版本,发现仍不支持 nfs V2协议。修改系统启动的grub为5.19内核版本。修改配置文件,使其支持 nfs V2协议。查看系统已经支持 nfs V2协议。查询当前系统已安装的内核版本。查看系统支持的nfs协议。查看系统nfs支持的版本。查看系统当前内核版本。
2024-07-30 18:22:43 551
原创 uboot NFS文件系统挂载,支持nfs V3版本
启动开发板,配置参数,使用网络文件系统 nfs V3 挂载。首先切换回 6.5内核版本。查看 /usr/src/通过tftp引导内核。
2024-07-30 18:20:56 281
原创 在QEMU中测试执行程序相关错误问题处理
出现“-/bin/sh: 命令:not found”,主要是因为系统缺少某些库文件导致的。拷贝lib库相关文件至lib目录,支持动态编译的应用程序运行。将rootfs.ext4 拷贝到运行目录,运行程序成功。#将rootfs的内容拷贝到rootfs中。查找交叉编译器相关的libc库文件。制作一个ext4格式的磁盘空间。rootfs分配空间不足。#格式化为ext4格式。
2024-02-07 10:27:27 590
原创 QEMU配置网络
这条规则的意思是,来自 192.168.1.0/24,且从 网卡 enp0s3 出去的包,要进行 NAT,同时会对返回的包进行 NAT。如果只有一个子网, -s 192.168.1.0/24 可以省略。NSLOOKUP可以用于查找指定域名的DNS服务器是否为权威服务器,这有助于验证域名的真实性。要想让虚拟机继续访问外网则需进一步配置下route以及iptables。nslookup 是一个用于查询域名系统 (DNS) 信息的命令行工具。将配置网络命令,添加至启动脚本。ping Ubuntu主机。
2024-02-06 14:31:19 1185
原创 QEMU搭建Linux-ARM系统
usr/bin/env python3 ,因为noetic(或者使用者安装)的python版本是3。/qemu-8.2.0/configure -prefix ~/path/test/qemu-install #执行配置文件,可参看上一个教程。inittab文件中关于运行等级的所有操作执行完成,便代表了boot完成,之后就引导进入登录界面,用户可以使用账户密码登陆进入系统。在安装QEMU前需要安装nijia工具,使用ninja1.12会出现bug,更换官网1.11.1版本,就可以正常编译了。
2024-02-04 14:13:54 1572
原创 RV搭建嵌入式QT开发环境
将QtEmbedded-5.12-arm目录中的lib 和 plugins 目录拷贝到需要移植的目录中。下载5.12安装包,解压后修改qmake.conf配置参数,将编译工具修改为交叉编译器。配置完成后,执行make && sudo make install安装到指定的目录。将lib 和 plugins 移植到开发板中,并配置启动参数。烧写rootfs.img文件到SD卡,启动开发板查看配置信息。打包后的,单独打包不能生成rootfs.img。将配置安装完成的QT环境移植到开发板中。
2023-12-22 11:15:46 1186
原创 使用qemu调试arm内核
安装 Eclipse IDE for C/C++ Developer。在内核的start_kernel 处设置断点。将跳转到断点 start_kernelchu。通过1234端口远程连接到qemu虚拟机。图形界面下载和调试较慢,后期不使用了。在qemu和Ubuntu之间共享文件。下载x86_64 Linux安装包。安装 Eclipse-CDT插件。安装支持不同处理器架构的gdb。下载Eclipse-CDT插件。运行脚本启动qemu和GDB。下载Linux-5.0源码。安装java运行环境。
2023-11-26 09:35:25 895
原创 Linux Makefile配置问题
编写一个简单的工程文件,制作Makefile需要包含lpthread,当Makefile写为如下配置时。main.c:(.text+0x25):对‘pthread_create’未定义的引用。main.c:(.text+0x3a):对‘pthread_create’未定义的引用。参考博文将-lpthread放到编译后面,重新编译-lpthread错误解决。cJSON.c:(.text+0x6e1):对‘pow’未定义的引用。
2023-11-14 17:03:49 499
原创 使用oracle虚拟机添加新硬盘
其中,/dev/sdb是新分区的设备文件名,ext4是要使用的文件系统类型。如果您希望在系统启动时自动挂载硬盘,需要进行一些额外的配置。单击选择要配置的oracle虚拟机,单击设置–>存储—>控制器,单击添加虚拟硬盘图标。这将在/home/hudahua目录下创建名为"mydisk"的目录作为挂载点。单击“创建”,单击“下一步”,选择需要创建的虚拟硬盘大小,完成创建。对新硬盘需要进行格式化。确保找到您要挂载的硬盘设备(例如,/dev/sdb)。将"/dev/sdb"替换为您要挂载的硬盘设备的路径。
2023-11-06 12:46:22 518
原创 error #10234-D: unresolved symbols remain,error #10010: errors encountered during linking;
MSP430定义函数时,由于函数名称错误,导致如下错误。Open_Power函数未声明或实现。可以从警告信息中解决,该错误。
2023-10-29 11:35:17 2985
原创 Ubuntu 安装更新软件报错问题
无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 3080(unattended-upgr)持有。N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。Ubuntu 安装软件报错问题。
2023-10-29 11:26:06 165
原创 花生壳配置TCP服务器
查询IP地址,可以通过花生壳软件查看公网IP地址,或者ping域名。选择TCP,输入需要内网穿透的IP地址和端口号。下载安装完成,注册后进入花生壳配置页面。在花生壳软件中开启服务器。打开TCP客户端连接。
2023-09-20 18:15:31 1057
转载 Ubuntu虚拟机异常关机,不能重启
原文链接:[https://blog.csdn.net/m0_38069169/article/details/131309098](https://blog.csdn.net/m0_38069169/article/details/131309098)最近又遇到类似黑屏的问题,以上方法无效的话,需要检查打印机设置,用管理员账号把。当重新点开虚拟机的那一刻,就知道完了,报错、正在运行、黑屏 都是标配。不慌,其实删除之前的运行缓存,然后重启主机,就可以开心的玩耍了。直接关机,忘记虚拟机还开着,很正常。
2023-09-08 15:38:56 483
原创 VMware设置,降低Win11系统内存的使用
设置常规,选择客户机操作系统为Windows。设置处理器和内存,建议内存不大于4096。高级选项,设置固件类型为UEFI。
2023-09-04 21:47:11 389
原创 Git管理本地代码
当一个项目被 Git 初始化以后,只是表示我们希望通过 Git 来管理当前的这个项目文件的不同时期版本记录,但是这个时候项目中已存在的文件,或者以后新增的文件都是没有进入版本控制管理的,它们是 未追踪(Untracked) 的状态。该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这个目录也是上面我们说的三个区域之一,这个目录也是 Git 保存数据记录的地方,非常重要,如非必要,不要改动。步骤2:“git checkout 文件名”,从暂存区拉取到工作区。
2023-08-30 20:36:23 566
原创 使用Debugfs确认GPIO_pinctrl占用状态
Linux 驱动调试中可能遇到gpio无法申请的问题,需要查找gpio被哪个驱动占用,用来解决管脚占用问题,介绍几种查找gpio占用的方案如果使用echo 17 > /sys/class/gpio/export 时报错:显示gpio被占用。则可以通过一下方法来查看GPIO占用状态。
2023-08-30 15:39:00 1250
原创 部分调试记录
继电器控制电路中,如遇到电路故障,不能通过CPU控制继电器工作,需提供一个电路(硬件逻辑电路),通过按键控制继电器的通断,达到临时使用的目的。Win键+X键—>选择命令提示符(管理员),或者找到c:\windows\system32\cmd.exe 文件,右击选择以管理员身份运行。在继电器控制线圈端口并接一路控制电路,电路正常工作时,让其处于高阻态,不影响电路的工作,一旦电路出现故障,通过按键控制所有继电器吸合工作。重新烧写新的内核后,出现网络拼不同,不能够挂载NFS 系统 linux下。
2023-08-26 10:12:16 259
原创 嵌入式linux下如何使用usb键盘
(注意:有可能默认设置USB键盘驱动是不可见的,需修改当前目录下的Kconfig文件)uImage生成后位于目录:arch/arm/boot/uImage;(或者直接将usb键盘驱动编译为驱动模块,进行加载也可);操作usb键盘,会有乱码出现;
2023-08-26 09:39:56 958
原创 配置Linux内核支持make menuconfig
新环境从0配置Linux内核支持make menuconfig。make menuconfig 再次解决下一个错误。到此就可以看见make menuconfig界面了。再次make menuconfig报错。再次make menuconfig。
2023-08-26 09:30:32 631
原创 编译全志A64内核
将V2.5文件夹的source目录下,lichee.tar.gz文件,拷贝到Ubuntu中。搭建好了一个最新系统-Ubuntu-22,制作全志A64镜像。如果你想改变使用的版本,那就运行一下这条命令吧,添加lib32成功,安装必要的编译工具。通过 gcc -v 查看 切换成功。开发板:全志helpera64。安装支持支持交叉编译器的库文件。将gcc g++版本都切换为9。下载gcc-9与g+±9。首先安装32位的库文件。
2023-08-26 09:08:50 188
原创 编译tiny4412 Linux 内核
由于内核版本较低,需要下载低版本的gcc,选择下载gcc-9与g+±9。将官方配置完好的defconfig文件作为配置文件。切换后可以通过 gcc -v 查看是否切换成功。进入Linux目录,执行make编译。解压Linux内核源码,进入目录。将gcc g++版本都切换为9。交叉编译器 4.5.1。
2023-08-26 08:58:36 880 2
原创 VScode使用SSH连接linux
依次选择 “文件”->“首选项”->“设置”,搜索 Show Login Terminal,勾选 ‘Always reveal the SSH login terminal’重新打开vscode,单击远程连接的图标,选择 Connect to Host in New Window,如下图。安装完后会在左侧生成了远程连接的图标,单击此图标,然后选择设置图标。单击后在下方的终端中,选择yes,输入登录密码。输入后会显示已连接到远程,这时选择打开文件夹,在控制台输入密码,确定即可连接成功。
2023-08-26 08:46:02 2862 1
转载 ubuntu设置NAT网络的端口映射
比如把Windows的22端口映射到Ubuntu的22端口,当开发板通过端口22(这是SSH端口)访问Windows的IP时,Windows就知道:哦,这22端口数据不是发给我的,是要我转发给Ubuntu的。在NAT里,外面的设备比如开发板要访问Ubuntu,也只能通过Windows代劳:开发板是看不到Ubuntu的,开发板是ping不通Ubuntu的。以前VMware使用桥接网络时,Windows和Ubuntu是同等的地位,要保证Windows、Ubuntu、开发板三者互通,设置比较复杂。
2023-08-24 12:08:11 1964
转载 CSDN如何转载别人的文章
在学习和工作过程中,我们难免会遇到一些问题,自然我们会百度谷歌查询资料寻找解决方案,有时我们看到自己喜欢的文章,会想转载到自己的博客里。下面我就介绍下CSDN中如何转载大神们的博客。
2023-08-22 18:07:33 109
原创 Windows系统开启防火墙,Ubuntu与Windows互通
Ubuntu挂载Windows NFS haneWIN 测试成功,但不能ping通Windows。选择“协议和端口”—> UDP 本地端口选择特定端口,填写hanewin中的端口号。选择“文件和打印机共享(回显请求)ICMPv4-In” 使用专用-公共网络段。选择 TCP 填写 hanewin中的端口号,然后单击“确认”到此,Ubuntu能够ping通Windows系统IP地址。启用Windows系统防火墙,,单击"高级设置"右击 nfs_share 选择“属性”
2023-04-21 15:23:40 627
原创 专业工具软件使用汇总
一、source insight1、显示右侧C文件列表2、显示左侧函数信息3、显示行号4、支持.S文件5、支持中文注释6、常用快捷键二、Notepad长按Alt不放, 行模式
2023-04-12 08:15:00 1560
原创 Windows系统CMD命令的使用
在Windows 10系统CMD命令与Linux系统终端使用类似。在Windows系统按快捷键win+R,文本框输入cmd即可进入Windows系统CMD命令行。Windows系统命令命名规则为每个单词首字母。下面介绍Windows系统CMD的使用。
2022-10-18 09:39:32 6624
FET-Pro430-Lite-3v42-2017
2023-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人