- 博客(20)
- 收藏
- 关注
原创 【Linux】Linux内核启动流程分析
init 进程的PID为1:在Linux中,init 进程的PID是1。start_kernel 通过调用众多的子函数来完成 Linux 启动之前的一些初始化工作,由于 start_kernel 函数里面调用的子函数太多,而这些子函数又很复杂,因此我们简单的来看一下一些重要的子函数。第 451 行,最后调用函数 cpu_startup_entry 来进入 idle 进程,idle 进程的 PID 为 0,idle 进程叫做空闲进程,当 CPU 没有事情做的时候就在 idle 空闲进程。
2024-12-15 22:42:48
1102
2
转载 【EtherCAT】ubuntu安装IGH教程
转载:菜鸟笔记--IGH ethercat master在linux4.x环境下的编译安装 - 代码先锋网
2024-12-15 20:44:54
209
原创 【Uboot】Uboot启动流程分析
第 68 行,调用 bootz_start 函数,该函数用于支持 zImage 镜像的启动,定义在文件 cmd/bootz.c 中,设置 images 的 ep 成员变量,也就是系统镜像的入口点,使用 bootz 命令启动系 统的时候就会设置系统在 DRAM 中的存储位置,调用 bootz_setup 函数,此函数会判断当前的系统镜像文件是否为 Linux 的镜像 文件,并且会打印出镜像相关信息bootz_start 主要用于初始化 images 的相关成员变量。此时会进行一些初始化工作。
2024-12-15 18:28:15
1345
原创 【C语言】浮点数的原理、整型如何转换成浮点数
众所周知C语言中浮点数占四个字节,无论在32位或者64位机器上。不免会发出疑问四个字节是怎么计算出小数的呢?其实物理存放还是按照整型存放的。
2024-12-11 21:52:53
924
原创 【Altium Designer 】AD如何使用嘉立创元器件的3D封装
按照PCB封装的原点设置原点,先用对角线找到中心点,然后退出草图,点击装配体->参考集合体->坐标系,原点选择中心点,x轴方向选择底面的x轴方向,接着确定好z轴的方向,没问题就可以打勾了。接着就可以导出新的3D文件了,按下图操作点击另存为,格式选择step,选项设置为刚刚建立的坐标系1,点击确定。复制编号在搜索框中,点击搜索,然后放置该PCB,接着点击文件->导出->3D文件,系统会下载该3D文件。复制编号,打开嘉立创EDA,编译器选择专业版,新建工程,点击PCB1。接着选中底面,打开草图绘制。
2024-12-04 11:10:35
2548
原创 【STM32】STM32启动流程分析
然后,微控制器会读取 0x00000004 位置的数据,这是复位向量的地址,它会指向复位处理程序(如 Reset_Handler)的入口。后面带有弱符号[WEAK]的中断服务函数意味着如果没有定义其他强符号的处理程序,链接器会使用默认的处理程序(通常是一个空的处理程序,可能会进入无限循环,等待恢复或其他动作)。在keil的项目中经常会看到.s的文件就是启动文件,启动文件的作用通常包括设置中断向量表、初始化堆栈、清除未初始化的数据、调用系统初始化函数、以及最后跳转到 main() 函数执行应用程序代码。
2024-12-02 21:24:04
2128
原创 【ZYNQ】手把手教学-Linux安装EtherCAT的IGH主站
一开始我们指定的安装目录为--prefix=/home/sqd/eth0/ethercat/etherlab,找到这个文件目录将该文件目录下的文件分别复制到开发板的系统目录中(有些采用软链接的方式但容易报错),另外将devices/ec_generic.ko和master/ec_master.ko一起复制到开发板的/lib/modules/5.4.0-rt5-xilinx-v2020.2目录下,然后依次执行下面命令。可以看出基本都是编译器链的问题,其他问题也大都都是这个原因,一一排查即可。
2024-11-29 21:50:52
2472
3
原创 【ZYNQ】Linux安装RT实时补丁
在 Linux 系统中,RT(Real-Time,实时)补丁是为了增强操作系统的实时性能,使得系统能够更好地支持实时应用,满足严格的时间要求。实时补丁的安装和使用是针对那些对响应时间和处理延迟有极高要求的应用场景,比如工业控制、机器人、音频处理、金融交易系统等。
2024-11-26 22:13:07
833
原创 【Linux进程管理】引起进程休眠的原因
例如,进程在等待文件读写时,可能会进入 D 状态(不可中断的休眠)。僵尸进程:当一个进程已经终止,但父进程尚未调用 wait() 来获取退出状态时,该进程会成为僵尸进程,进入休眠状态,直到父进程处理它的退出状态。等待信号:进程可能进入休眠状态,等待某些信号的到来,例如通过 sigwait() 等方式,进程会阻塞并进入休眠,直到接收到特定的信号。互斥锁(Mutex)或信号量:当一个进程请求一个锁(例如互斥锁或信号量)时,如果锁被其他进程持有,进程将进入休眠状态,直到锁被释放。条件变量通常用于线程同步。
2024-11-24 19:29:10
719
原创 [ZYNQ]如何用HLS创建一个IP核
Xilinx 推出的 Vivado HLS (High-Level Synthesis) 工具能够显著简化 FPGA 开发过程,尤其是在使用 C、C++ 或 SystemC 进行 FPGA 编程时。与传统的 RTL (Register Transfer Level) 描述相比,Vivado HLS 提供了一种更高层次的抽象,允许开发者直接从高级语言(如 C/C++)进行硬件设计,从而减少了开发时间和复杂度。
2024-11-22 12:14:13
488
原创 【Linux】linux各个文件夹的作用
在 Linux 操作系统中,文件系统的结构是非常重要的,它遵循一种标准的目录布局规则,称为 Filesystem Hierarchy Standard (FHS)。Linux 系统中的文件夹(目录)有着明确的用途,每个目录都有自己的特定功能。
2024-11-15 17:47:07
1354
原创 【linux命令】史上最全Linux命令,结合用例通俗易懂(系统常规命令)
为了弥补这一不足,需要一份更为全面的 Linux 命令指南,涵盖从基础到高级的各种命令使用,以及实际应用场景中的技巧与建议。前言:目前关于 Linux 命令的文章往往存在内容不全的问题,导致初学者和中级用户在使用过程中遇到困难。如果你编写了一个包含环境变量、函数或其他 shell 命令的脚本,可以使用 source 命令来执行该脚本,使得脚本中的修改直接影响当前的 shell 会话。如果文件已存在,它会被覆盖。在脚本中使用时,export 设置的环境变量只对当前会话或脚本有效,退出会话后会失效。
2024-11-15 17:28:12
580
原创 【linux命令】史上最全Linux命令,结合用例通俗易懂(网络管理命令)
为了弥补这一不足,需要一份更为全面的 Linux 命令指南,涵盖从基础到高级的各种命令使用,以及实际应用场景中的技巧与建议。前言:目前关于 Linux 命令的文章往往存在内容不全的问题,导致初学者和中级用户在使用过程中遇到困难。网络速度:当前速率为 10Mb/s,这是较慢的速率,可能需要检查网络硬件(如交换机、网卡、网线等)和配置,确保设备支持更高的速率(如 100Mbps 或 1Gbps)。后台运行:服务通常在没有用户干预的情况下在后台运行,常常是守护进程(Daemon)的一部分。
2024-11-11 22:46:53
709
原创 【linux命令】史上最全Linux命令,结合用例通俗易懂(系统管理命令)
静态优先级:由操作系统内核设定,表示进程的重要性,静态优先级的范围是 0 到 139,其中 0 表示最高的优先级,而 139 表示最低的优先级。静态优先级的数值与 nice 值成正比关系,默认情况下,进程的 nice 值为 0(nice 值的范围是从 -20 到 19),静态优先级通常为 120(在 0 到 139 的范围内)。为了弥补这一不足,需要一份更为全面的 Linux 命令指南,涵盖从基础到高级的各种命令使用,以及实际应用场景中的技巧与建议。3)显示线程,默认情况下,top 显示的是进程。
2024-11-09 16:41:03
976
原创 【通信协议】SPI协议特点与应用
SPI协议适用于需要高速、全双工数据传输的应用,尤其是在短距离通信和设备之间需要快速交换大量数据时表现出色。它被广泛应用于嵌入式系统、传感器接口、存储设备、显示器和音频处理等领域。尽管SPI协议相对简单,但由于缺少错误校验和协议封装,因此需要在实际应用中对数据传输的可靠性进行额外的考虑。
2024-11-06 20:59:28
803
原创 【通信协议】IIC协议特点与应用
I²C(Inter-Integrated Circuit,简称IIC)协议是一种广泛应用于微控制器、传感器、显示器、存储器等设备间的串行通信协议。它由飞利浦(Philips,现为NXP半导体)于1980年推出,主要用于短距离、低速的数据传输。
2024-11-05 09:52:46
761
原创 【嵌入式】嵌入式软件面试心得与总结建议
博主在硕士阶段,主要从事嵌入式软件和硬件的相关工作,投递的岗位大多集中在嵌入式软件领域。后来是进入了一家机器人公司,工作内容大体是Linux相关的软件开发。结合我自己以及舍友在秋招中的经历,我总结了一些嵌入式软件秋招的心得,希望能对大家有所帮助。
2024-11-04 22:14:17
1192
原创 【linux命令】史上最全Linux命令,结合用例通俗易懂
目前关于 Linux 命令的文章往往存在内容不全的问题,导致初学者和中级用户在使用过程中遇到困难。许多文章仅涵盖基础命令,而缺乏对系统管理、网络配置、包管理和脚本编写等重要主题的详细讲解。此外,实际操作中的常见问题及其解决方案也常常未被提及,使得用户在遇到困难时无法找到有效的参考。为了弥补这一不足,需要一份更为全面的 Linux 命令指南,涵盖从基础到高级的各种命令使用,以及实际应用场景中的技巧与建议。这样的资源不仅能够帮助用户快速上手,还能提升他们对系统管理和自动化的理解,从而在实际工
2024-11-04 16:56:58
1830
原创 【ZYNQ】Linux开发板无法使用CAN的测试工具canutils
1.首先检查Linux 内核源码是否默认已经使能了CAN 驱动模块,执行下面这条命令查看所有的网卡设备。2.如果此时使用测试工具canutils的相关命令如cancongfig出现下述问题,说明根文件没有安装成功测试工具canutils。3.安装测试工具canutils链接:https://pan.baidu.com/s/1OZDm2SyUVn9iMrkNxYRrig提取码:chen4.内容都复制完成后使用canconfig命令检验是否安装成功
2024-11-03 17:07:41
402
原创 【ZYNQ】QT界面不显示中文
zynq开发板首次将qt程序放入到开发板中运行。遇到类似问题1.首先需要指定环境变量export QT_QPA_PLATFORM=linuxfb,建议将该环境变量添加到/etc/profile,方便后续不用每次指定,不同类型开发板可能不一样。2.安装fonts字体库。链接:https://pan.baidu.com/s/12qgwoG-KaNeE6H9nn0xRxg提取码:chen查看/rootfs/etc/fonts文件下找到字体配置文件fonts.conf发现指定目录为/usr/sh
2024-11-03 16:03:44
703
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人