![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
今天做个好人
士不可以不弘毅今天来做个好人
展开
-
自己实现一个printf函数
在ARM嵌入式开发环境中,串口一般使用ARM PL011的uart实现,uart的实现原理就是实现了一个8bits宽度,32深度的fifo,不停的往屏幕输出一个byte,一个byte。这个就是硬件的实现,那么软件是怎么实现打印 高级程序语言中定义的char,short,int,long,float,string呢?这个就是软件实现的技巧了,今天我来实现一个printf函数,当然我现在的环境是x86原创 2016-10-23 11:06:21 · 2648 阅读 · 0 评论 -
大小端之个人见解,最后一次去搞这个概念
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。 比如 0x10原创 2016-10-23 20:06:42 · 259 阅读 · 0 评论 -
ARMv8的single copy和multi-copy之个人见解
先附上蜗蜗科技前辈对于这俩名词的理解:http://www.wowotech.net/armv8a_arch/atomicity.html 我把这个博客看完了,armv8手册上也有相关解释,我不想看,可读性太差。 这里说一下个人理解: 1、single copy的意思是core连续多次对同一地址发起load或者store操作,原子性保证的单位是byte,那么就是说这个byte原创 2016-10-23 20:31:13 · 3320 阅读 · 2 评论 -
ARMv8 架构百日谈 第一日
1、aarch64状态下,TCR寄存器决定了va有两个范围,包括EL1和EL0下。 2、x30一般用作函数返回的存储地址用 3、SP是否配置为16byte对齐是可以在EL1下配置的 4、尝试执行一条非word对齐的指令会导致对齐异常 5、PSTATE包含的基本标志有NZCV,分别表示负数,0,进位,溢出,这些标志的作用是为了执行跳转指令的时候进行判断,前面的指令有可能更新这些标志,所以分支原创 2016-10-23 21:56:21 · 5892 阅读 · 0 评论