ARM相关
monkey_llll
这个作者很懒,什么都没留下…
展开
-
Ubuntu获取命令源码
获取命令源码原创 2022-08-22 13:48:20 · 255 阅读 · 0 评论 -
ARM寄存器简单说明
ARM总共有37个寄存器,特定模式下,可以一次激活18个寄存器:16个数据寄存器、2个程序状态寄存器。数据寄存器由r0-r15表示,其中:r13:栈指针(SP)寄存器,存储当前处理器模式的栈顶端地址值r14:链接(lr)寄存器,存储调用子程序时的返回地址r15:程序计数(pc)寄存器,处理器读取指令后,通过程序计数器存储下一个指令程序状态寄存器:CPSR:程序状态寄存器,当前程序当前执行状态寄存器,在任何模式下可以被访问。包含条件标志位、中断禁止位、当前处理器模式标志...原创 2021-11-11 17:13:22 · 404 阅读 · 0 评论 -
设备树里面#address-cells 、#size-cells、reg三者的关系
在linux设备树里面,我们经常看到如下描述:regulators { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <0>; reg_usb_otg1_vbus: regulator@0 { ... //其他一些信息 reg = &l...原创 2019-08-03 16:21:59 · 8880 阅读 · 3 评论 -
linux arm 寄存器进行读写的操作
之前对寄存器读写进行过操作,后面又忘了,这次做个记录:当我们知道寄存器的物理地址时,我们不可以直接使用物理地址。不使用物理地址是因为我们使用了虚拟内存地址对实际的物理地址进行虚拟化管理。假设我们知道某个寄存器的物理地址是:0x302c0038如果我们要操作这个寄存器,就需要对这个地址进行内存映射:ioremapvoid reg_set(u32 phy_reg_addr, u32 ...原创 2019-07-20 14:19:42 · 3424 阅读 · 1 评论 -
串口相关操作信息
这篇文章是转载别人的。转载地址是:https://blog.csdn.net/specialshoot/article/details/50707965linux下串口通信主要有下面几个步骤Linux串口通信流程串口通信流程图下面我会一一介绍这几个步骤。1.打开串口代码(串口为ttyUSB0) //打开串口 int open_port(void)...转载 2019-07-17 11:33:46 · 275 阅读 · 0 评论 -
imx7d 修改CPU频率
CPU频率相关的信息主要保存在:/sys/devices/system/cpu/cpu0/cpufreq 路径下面。更改CPU的频率调节模式performance. 不考虑耗电,只用最高频率。interactive. 直接上最高频率,然后看CPU负荷慢慢降低。powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个吧!userspace. 可以在用户空...原创 2019-06-21 09:25:15 · 782 阅读 · 0 评论 -
linux 设置CPU的占用率
在开发过程中,我们测试程序的时候,需要CPU在一定的占用率下进行测试,但是在测试的时候,CPU的占用率不一样符合我们的要求。那么我们可以借助其他的方式来设置CPU的占用率。主要借助工具 cpulimit +死循环 来进行设置。原理如下:cpulimit的作用是用来设置一个进程CPU占用率的上限。我们通过死循环让CPU占用率达到100%,然后通过cpulimit去限制进程的上限,那么就可以得...原创 2019-05-22 19:32:23 · 2801 阅读 · 0 评论 -
arm 通过 uImage + dtb 启动
之前都是使用 uboot 通过 zImage+dtb的方式来启动内核。后面需要通过 uImage来启动。方式如下:先编译好 uImage 参考我之前的一篇博客编译uImageuboot传递设备树uboot从v1.1.3开始支持设备树,为了使用设备树,需要在config文件里配置#define CONFIG_OF_LIBFDT在uboot中可以从nandflash mmc s...原创 2019-05-11 23:22:36 · 2051 阅读 · 0 评论 -
编译生成uImage
因为各种原因,需要生成uImage镜像。本来以为挺简单的,只需要make uImage就可以了。结果发现并不是。生成方式如下:make -j 16 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LOADADDR=0x10800000 uImage解析:-j 16 多线程编译ARCH=arm 指定平台CROSS_COMPILE=ar...原创 2019-05-11 21:36:09 · 1527 阅读 · 0 评论 -
IMX系列设备树引脚复用解析
在linux3.0之后,硬件信息都在设备树里面描述。寄存器也是在设备树里面进行设置。在imx系列的设备树里面,一般都是如下:pinctrl_i2c2: i2c2grp { fsl,pins = < MX7D_PAD_I2C2_SDA__I2C2_SDA 0x4000007f MX7D_PAD_I2C2_SCL__I2C2_SCL 0x4000007f >;};...原创 2019-05-01 13:51:20 · 1958 阅读 · 0 评论 -
设备树的interrupts属性
在设备树里面,中断使用interrupts来描述。interrupts属性后面,会有不同的参数,有时是两个,有时是三个两个的时候一般是这样出现:interrupt-parent = <&gpio2>;interrupts = <29 0>;一般这样表明:中断控制器是GPIO2,然后使用它的29号中断。(这里的29号,就是指29号引脚),0是指触发...原创 2019-04-24 19:01:24 · 17361 阅读 · 5 评论 -
ubuntu 通过ssh链接ARM板 及 IMX6使用调试串口通信
先说第一个,ubuntu通过SSH链接ARM板。之前在windows上面都是通过ssh工具进行的链接。在linux上面,对于命令怎么去链接反而不不知道了。现在记录一下命令如下:sudo ssh root@192.168.1.123分析:1、sudo ssh 使用超级用户的权限执行ssh2、root ARM的用户名3、@192.168.1.123 链接到ARM板。IP...原创 2019-05-04 20:10:15 · 1537 阅读 · 0 评论 -
linux 通过命令控制GPIO
linux 4.9.88在linux里面,可以通过命令去控制GPIO的状态,这种方式可以快速简单的测试GPIO。配置内核:Device Drivers > GPIO Support [*] /sys/class/gpio/... (sysfs interface)重新编译,烧录,重启。进入 /sys/class/gpio目录假如你想操作GPIO5-IO3这个...原创 2019-04-14 13:22:33 · 5589 阅读 · 2 评论 -
goto 在 linux 里面简单使用
本文主要是简单介绍一下goto语句的简单使用,写这篇博客的目的主要是记录一下。之前学C语言的时候,老师就不提倡使用goto,所以一直知道goto大致是个什么作用,但是一直没有用过,今天在写驱动的时候,需要使用到goto,在网上查了一下,发现大家都是说goto的好处和坏处,没有介绍它的用法,然后就自己写了个程序,测试下。 程序代码如下:void test_goto(void){ ...原创 2019-01-22 23:00:13 · 5496 阅读 · 0 评论 -
在linux内核里面新添加一个驱动模块
这篇文章完全参考:原文:https://blog.csdn.net/u012247418/article/details/83684126 原文讲解的特别详细,希望大家都去看原文发这篇博客的原因完全只是为了方便自己以后查阅。 1. 构建测试模块:hello1.1 在linux-3.4/drivers/下新建目录hellocd linux-3.4/drivers/mkd...转载 2019-01-09 23:37:02 · 2258 阅读 · 1 评论 -
ARM char 类型的使用
今天在做编码转换的时候,遇到了一个很奇怪的现象。我的char数组里面,在linux PC上面,里面的值有负数,但是到了ARM开发板上面,里面的值就全变成了整数。调了半天都不知道到底是咋回事。后面在网上百度的时候,偶然看见有位网友说:在arm上面,char类型默认为unsigned char 。看到这位网友的话后,瞬间就想明白了。然后赶紧去测试了一下,发现还真的是这样。后面我把char改成...原创 2018-12-27 19:43:54 · 1178 阅读 · 0 评论