自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 编译代码的一些理解

编译代码的一些理解ARM Cortex-M底层技术—编译内核的原理及其应用参考网址:https://www.cnblogs.com/39950436-myqq/p/11545140.html1. 编译链接的定义不管我们编写的代码有多么简单,都必须经过「编译 --> 链接」的过程才能生成可执行文件:编译就是将我们编写的源代码“翻译”成计算机可以识别的二进制格式,它们以目标文件的形式存在;链接就是一个“打包”的过程,它将所有的目标文件以及系统组件组合成一个可执行文件。抛开嵌入式而言,C

2021-10-29 14:16:58 4542

原创 2021-10-23

linux内核设计与实现1.开卷有益今天开始学习陈莉君老师翻译的 linux内核设计与实现 ,借以进一步完成本人对linux内核的进一步理解。首先,如果读完本书之后想对内核进一步精进,可以学习深入理解linux内核,如果更侧重于实际编程,可以看linux设备驱动方面的书籍,内核学习和实践环节可以访问http://www.kerneltravel.net/2.一些基本的概念linux是类unix系统,但它不是unix操作系统一般没有统一的定义,但是有一种通俗的说法如下:应用程序和内核程序的

2021-10-24 11:21:18 99

原创 linux内核开发(一)

1.概述Linux 下的输入输出(I/O),设计成“一切皆文件”,把各种各样的输入输出(I/O)当成文件来操作,统一用文件 I/O 函数的形式,提供给应用程序调用。1.文件描述符文件描述符 fd(file descriptor)是进程中代表某个文件的整数, 有的文献资料中又称它为文件句柄(file handle)。...

2021-08-02 14:58:54 174

原创 僵尸进程和托孤进程

1.进程的正常退出步骤子进程调用exit()函数退出父进程调用wait()函数处理其他事情若子进程退出后,父进程没有调用wait函数,那子进程就会变成僵尸进程(进程状态变为 Z)。2.托孤进程父进程比子进程先退出,子进程变为孤儿,linux系统会把子进程托孤给1号进程(init进程)...

2021-06-23 17:06:21 120

原创 ps命令详解

参数解释a 显示一个终端上所有的进程u 显示进程的归属以及内存的使用情况x 显示没有关联控制终端的进程j 显示进程归属的进程组ID、会话ID、父进程IDf 以ascii显示出进程的层次关系aux选项user :进程是哪个用户产生的pid: 进程的身份号码%cpu: cpu占用比%mem: 内存占用百分比vsz :表示进程使用的虚拟内存大小rss :表示进程使用的物理内存大小tty:表示当前进程关联哪一个终端stat :进程状态axjf选项PPID:父进程IDPGID:所

2021-06-23 16:55:43 138

原创 创建守护进程

前言会话是用来管理前后台进程组,会话关联着一个终端,当我们关闭终端之后,会话也会随之被关闭,那么进程组里面管理的进程也会随之被关闭。举例说明:当你用终端启动一个进程后,关闭终端,那么你运行的命令那个线程也会被关闭我们不想我们启动的线程受到终端的影响,就算终端被关闭,也可以在后台运行,我们可以用创建守护进程的方法做到。创建守护进程1.创建一个子进程,父进程直接退出方法:通过fork()函数2.创建一个新会话,摆脱终端的影响方法:通过setsid()函数3.改变守护进程的当前工作目录,改为

2021-06-23 15:50:35 125

原创 数字示波器的三大指标

1.带宽控制输入正弦信号的幅值不变,增大输入正弦信号的频率,当幅值下降为原来的0.707倍(-3db)时,这个频率就是示波器的截至频率,也就是带宽。带宽时用来衡量一个示波器最大可以测多大频率的信号这里有一个经验,测量一个100Mhz的信号,那么示波器的带宽至少要达到500Mhz,也就是说示波器的带宽至少要是信号的5倍以上,才能对信号进行精准的测量。2.采样率就是1秒的时间内,对输入的信号f采集多少次。单位为sample/s 简记为Sa/s,代表每秒采样多少次。一般示波器面板上会标示出带宽

2021-06-23 10:00:23 4232

原创 嵌入式杂记(一)

这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdo

2021-06-21 16:34:13 154

原创 2021-02-19

IMX6ULL学习(3)----c语言点亮led灯上一篇我们讲解了用汇编语言点亮LED 灯,但相较于高级语言如C语言,汇编的移植性和可阅读性较差,所以是实际开发过程中汇编用的很少,汇编只是用来完成 C 语言环境的初始化。本篇我们就来学习如何用汇编来完成 C 语言环境的初始化工作(如初始化DDR,初始化堆栈指针),然后从汇编跳转到 C 语言代码里面去。-----最重要的是设置SP指针将CPU 设置为SVC模式,即超级管理员模式,因为这样就可以访问所有的cpu资源了下一篇将会讲解本篇用到的makef

2021-06-21 14:41:37 57

原创 stm32驱动sd卡(1)

Stm32驱动sd卡知识总结(1)1.Stm32支持SDIO接口,可以用来接入一张不超过32G的SD卡2.CID寄存器长度为128bit,用来标记SD卡的全球唯一身份识别号3.支持单线和四线传输模式,数据和命令传输时,上升沿有效4.sd卡工作有两个频率,当卡识别阶段(初始化),时钟频率FOD 最高为400khz,当卡为正常工作阶段FPP时钟可达25Mhz,若配置寄存器为高速模式,速度可达50Mhz5.命令的发送与接收从CMD线上传输,数据从D0-D3线上传输说明:SD卡的数据是以块的方式传输

2021-03-21 16:48:12 3557

原创 IMX6ULL学习(4)----makefile中的几个常用函数

IMX6ULL学习(4)----makefile中的几个常用函数1.patsubst字符串替换函数将text中的内容,符合pattern的用replacement代替2.wildcard 通配符函数3.subst函数4. wildcard函数将通配符在变量中展开$( wildcard $(dir)/*.s )返回每个dir目录下的所有汇编文件作者水平有限,请大家多多指正!!!...

2021-02-24 21:00:04 127

原创 makefile与链接脚本编写(3)

IMX6ULL学习(3)----makefile与链接脚本编写1.makefile文件一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令(百度百科)。简言之,就是可以按照我们的要求,对源代码文件进行编译的工具看下面简单代码objs := start.o main.o

2021-02-24 19:42:41 495

原创 imx6ull的学习过程(2)-- 用汇编点亮LED灯

imx6ull的学习过程(2)用汇编点亮LED灯1.汇编语法简介我们要编写的是 ARM汇编,编译使用的 GCC 交叉编译器,所以我们的汇编代码要符合 GNU 语法。基本格式如下:label: instruction @ comment标号:指令 @ 注释任何以“:”结尾的标识符都会被识别为一个标号。实例:add: MOVS R0, #0X12 @设置 R0=0X12一般的,汇编代码若大写就要全部大写,小写就全部小写,不能大小写混合用户可以使用 .section 伪操作来定

2021-02-19 10:23:08 392 4

原创 学习imx6ull (1)

从今天开始写博客记录一下imx6ull的学习过程1.首先确定一下LED灯的电路图确定 LED0 与 CPU 的GPIO1_3连接。IMX6ULL IO配置过程:配置时钟–>配置引脚的复用功能–>配置引脚的电气属性–>设置数据寄存器的数值以改变高低电平参考手册的第十八章介绍了 imx6ull 的时钟树其中寄存器 CCGR0–CCGR6 的控制着芯片上所有的时钟配置。如下图:找到GPIO1控制时钟所对应的控制位,将其设置为打开,这里填入11不同配置代表的含义引脚功能复

2021-02-16 15:22:38 2244 1

原创 2021-01-11

如何远程开启SSH1.打开linux自带终端(快捷键ctrl + alt +T)2.安装openssh-server工具输入命令 sudo apt update输入命令 sudo apt upgrade输入命令 sudo apt-get install openssh-server3.安装完成后安装完成后启动和验证一下输入 (1) sudo systemctl enable ssh (2)sudo systemctl...

2021-01-11 20:05:21 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除