嵌入式
喜欢机车的路上人
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ARM7种工作模式-切换
首先梳理一下思路: 1.每种异常模式的进入地址都是固定的(硬件决定) 2.软件编写以各个异常模式的地址开始跳转到自定义的地址进行展开编写 3.发生异常,硬件会将先前模式下的下一条指令放入LR寄存器,并将CPSR的值存入SPSR 4.在异常模式下首先选择栈地址存放数据,要保存先前的环境到栈中(虽然先前硬件有保存,但是接下来的程序会使其变化,所以我们要将先前的环境数据提取出来再自己保存) 5.编写异常处理程序 6.恢复环境 -------------------------------------原创 2020-06-10 18:57:21 · 1630 阅读 · 0 评论 -
栈的使用
1.什么是栈 百度这么说: 栈是一种特殊的线性表,是一种只允许在表的一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。表的另一端称为栈底。栈顶的当前位置是动态的,对栈顶当前位置的标记称为栈顶指针。当栈中没有数据元素时,称之为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退栈或出栈。 简易理解: 客栈,即临时寄存的地方,计算机中的堆栈主要用来保存临时数据,局部变量和中断/调用子程序程序的返回地址。程序中栈主要是用来存储函数中的局部变量以及保存寄存器参数的,如果你用了操转载 2020-06-07 23:42:03 · 647 阅读 · 0 评论 -
嵌入式uart串口编程
(串口、COM口物理接口形式(硬件),TTL、RS-232、RS-485为电平标准(电信号)。) 接下来总结一下串口的编程,以便后续的查看 1.首先理一下串口编程的思路,因为串口的物理接口是两根引脚RX、TX,用于发送数据和接受数据,而一般来说有串口通讯功能的引脚都是复用的,所以刚开始是需要设置这两个引脚为串口功能,然后就要设置串口的波特率、数据位、校验位、停止位等信息进行初始化,最后就需要编写信息传输公共的函数方便后期的通讯。 2. void uart0_init() { /* 设置引脚用...原创 2020-05-25 00:19:53 · 784 阅读 · 0 评论 -
嵌入式中makefile文件的应用
1.讲Makefile文件之前,需要先简单说一下文件的“编译过程”,如下所示: 预处理→编译→汇编→链接 这是一个将我们编写的程序编程可执行文件的一个过程,因为我们实际项目中程序会非常的多,如果每一个文件都单独编写执行这样的一个过程会非常的不方便,并且许多程序有时候也不需要这样的一个过程,为了方便管理和效率的问题,就必须引入Makefile这样的文件。 2.Makefile规则: 目标文件:依赖文件 (tab键)命令 在这样的规则下,如果依赖文件比目标文件新或者目标文件不存在,就会执行命令。在一原创 2020-05-24 23:07:39 · 403 阅读 · 0 评论 -
endian 字节序
在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。 目前在各种体系的计算机中,通常采用big-endian和little-endian两种字节存储机制描述在多字节数中各个字节的存储顺序。 1. Little-endian:将低序字节存储在起始地址(低位编址) 2. Big-endian:将高序字节存储原创 2020-05-24 22:19:00 · 244 阅读 · 0 评论 -
#if #endif在屏蔽大块代码上的运用
屏蔽掉大块代码时,关于 #if 常量 #endif 的使用 --------------------------------------------------------------------------------------------------------------------------------- #if 常量 #endif ----------------------------------------------------------------------...原创 2020-05-24 21:43:45 · 436 阅读 · 0 评论 -
嵌入式中 putchar()&getchar()
int putchar(int c) { /* UTRSTAT0 & UTXH0 */ while(!(UTRSTAT0 & (1 << 2))); //当UTRSTAT0为1时说明现在发送缓冲寄存器中有数据,即上一个数据还没发送出去,或现在正在有数据发送,需要等待 UTXH0 = (unsigned c); //当UTRSTAT0为1即无数据暂用才会执行这句代码,把数据放...原创 2020-05-17 22:40:30 · 420 阅读 · 0 评论 -
嵌入式 中关于(*(volatile unsigned int *)0x40000000)的理解
仅以此纪录学习: 刚开始看到 #define UCON(*((volatile unsigned int *)0x40000000))有点不理解,后来查了一些资料终于恍然大悟!下面一步步拆开进行解释: 1.#define UCON(*(volatile unsigned int *)0x40000000)) 将 UCON 宏定义为地址 0x40000000 上的内容 2.(volatile unsigned int *)0x40000000) 将0x40000000强制转换为地址int型指...原创 2020-05-15 23:33:38 · 5772 阅读 · 0 评论
分享