![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
arm
文章平均质量分 74
勤勉之
码字中.....。
展开
-
【操作系统】嵌入式开发系统的中断
我的理解是,中断是这样的:(如果有错误,请帮忙指出,thanks)【本文仅作自己的记录,不作为分享】1、各个硬件模块注册到主程序的一个中断函数,该注册函数有个参数是中断处理程序。2、一旦硬件模块调用中断函数以后,中断处理程序会开始运行,传入相应的参数,完成一次中断响应。3、响应完成以后就退出该函数,也会返回到之前的系统运行状态。4、不过,在运行中断以前,响应的寄存器数据会被保存下来,以便中断完成以后可以很快恢复。...原创 2020-10-27 21:23:49 · 466 阅读 · 0 评论 -
【嵌入式智能硬件】:wifi模块配网,连接家里的路由器
智能家居,物联网,互联网加一堆新的科技名词,下至草根,上至总理,都在谈论,我们已经可以看到下一个将猪吹起来的起风口,创业者在这个领域争先恐后。随之而来的是,智能家居的设备智能化,很多家电设备都安装上了 WiFi 模块, 方便用户通过手机控制和远程查看家里情况,典型的设备如智能插座,智能空调,智能净化器。转入正题,对于智能设备首次配置,这个过程简单来讲就是把 WiFi 设备初始化后,连到家里的无...转载 2019-08-07 14:12:28 · 2494 阅读 · 0 评论 -
linux动态库的初始化和清理(init()函数和fini()函数)
a. Windows 中有 DllMain 入口函数, 而 Linux 中则没有。 b. Linux 中有特殊函数 _init 和 _fini, 主要是分别用来初始化动态库和关闭的时候 做一些必要的处理, 我们可以把自己认为需要的代码放到这两个函数里面, 它们分别 在动态库被加载和释放的时候被执行。具体说, 如果一个动态库里面有一个名字为 "_init"...转载 2019-08-07 13:45:22 · 4166 阅读 · 0 评论 -
ram和flash
名词解释:x86 inter 为代表 采用的多为冯.诺依曼体系PC机 或者说是arm和dsp 等处理器,都是采用的哈弗总线 RAM:常说的运行内存,关机重启以后里面的数据会清空。flash:关机重启以后数据不会清空。1、x86的pc机和单片机Cpu运行的时候的程序是存储在ram中的;2、而单片机等嵌入式系统则是存于flash中;再来说一说X86cpu和单片...原创 2019-01-02 11:42:43 · 440 阅读 · 0 评论 -
进程和线程的区别
线程和进程各自有什么区别和优劣呢? 进程是资源分配的最小单位,线程是程序执行的最小单位。 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。 线程之间的通信更方便,...原创 2018-08-20 19:47:07 · 278 阅读 · 0 评论 -
C语言中volatile关键字详解
volatile关键字详解,以及在嵌入式中的应用volatile 关键字的作用是作为指令关键字,确保本条指令不会因为编译器的优化而省略,且要求每次直接读值。关键字 volatile 是与 const 绝对对立的。二、在嵌入式中使用volatile变量如果加了 volatile 修饰,则会从内存重新装载内容,而不是直接从寄存器拷贝内容。 volatile应用比较多的场合,在中断服务程序和cp...转载 2018-08-20 19:40:09 · 754 阅读 · 0 评论 -
Linux 内核移植步骤
Vi Makefile 修改arch, 修改cross_compile = arm-none-linux-gnueabi- 移植linux内核, 首先需要一个基本的配置(哪些模块有, 哪些功能有) 怎么得到基本配置 : arch/arm/configs 目录下有很多arm 处理器的默认配置 Make exynos_defconfig 等同于 ...原创 2018-08-03 15:20:42 · 1107 阅读 · 0 评论 -
Uboot 移植步骤
Uboot 移植步骤:Vi Makefile 注意修改交叉编译工具链 Vi boards.cfg 查看uboot 已支持的板子, 哪款板子跟我们要移植的板子更接近 如果origen 板子跟 我们的板子接近, 参考origen 板子移植我们的uboot 拷贝origne 板子的所有文件到fs4412 ,Cp -rf board/samsung/origen ...原创 2018-08-03 15:19:21 · 3274 阅读 · 0 评论 -
ARM中LDR伪指令与LDR加载指令
ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。LDR伪指令的形式是“LDR Rn,=expr”。下面举一个例子来说明它的用法。COUNT EQU 0x40003100……LDR R1,=COUNTMOV R0,#0STR R0,[R1]COUNT是我们定义的一个变量,地址为0x40003100。这中定义方...转载 2018-07-31 20:00:37 · 319 阅读 · 0 评论 -
关于地址移位的解释
原创 2018-07-25 18:53:18 · 912 阅读 · 0 评论 -
ARM开发板LED跑马灯
#define GPX2CON (*(volatile unsigned int *)0X11000C40) //BIT31---BIT28=== 1#define GPX2DAT (*(volatile unsigned int *)0X11000C44)//BIT7 ==== 1, 0//瀹忓畾涔? LED3#define LED3CON (*(volatile unsi...原创 2018-07-25 13:57:26 · 1042 阅读 · 0 评论 -
Linux操作系统与ARM工作模式
首先,ARM开发板在刚上电或复位后都会首先进入SVC即管理模式,此时、程序计数器R15-PC值会被赋为0x0000 0000;bootloader就是在此模式下,位于0x0000 0000的NOR FLASH或SRAM中装载的,因此、开机或重启后bootloader会被首先执行。 接着,bootloader引导Linux内核,此时、Linux内核一样运行在ARM的SVC即管理...转载 2018-07-19 15:29:34 · 692 阅读 · 2 评论 -
ARM处理器的八种寻址方式
ARM处理器的八种寻址方式1、立即数寻址 MOV r0, #123 123->r0;2、寄存器寻址 MOV r1,r0 r0->r13、寄存器位移寻址: MOV r1,r2, lsl#2 r2*r4-->r14、寄存器间接寻址: ldr r0 ,=var 伪指令 ...原创 2018-07-23 16:26:56 · 3370 阅读 · 0 评论 -
arm汇编指令
加法指令 ADD R1,R2,R3 R1= R2+R3;带进位加法 ADC R1,R2,R3 R1=R2+R3+C减法指令 SUB R1,R2,R3 R1 = R2-R3逆向减法 RSB R1,R2,R3 R1=R3-R2带借位减法 SBC R1...原创 2018-07-23 14:30:45 · 1206 阅读 · 0 评论