C Primer Plus Linux C编程一站式学习 C 和指针 C 程序设计语言 深入理解C指针 C 专家编程 C 陷阱与缺陷 C 语言的科学和艺术 C 语言程序设计现代方法 C 语言接口与实现 数据结构与算法分析——C语言描述 UNIX环境高级编程(第3版) Linux程序设计 为什么要学C语言? 先看C语言的历史; 1973 年,KenThompson 和 DennisRitchie 在做系统内核移植开发时,感觉使用汇编语言很难实现。后来决定使用一种称为 BCPL的语言进行开发,在开发过程中,他们在 BC…

2021年5月10日 0条评论 231点热度 0人点赞 geek-maige 阅读全文

先说串口 因为之前写过一篇UART,通用串行异步通讯协议,[UART的相关资料]() 因为UART没有时钟信号,无法控制何时发送数据,也无法保证双发按照完全相同的速度接收数据。因此,双方以不同的速度进行数据接收和发送,就会出现问题。 如果要解决这个问题,UART为每个字节添加额外的起始位和停止位,以帮助接收器在数据到达时进行同步; 双方还必须事先就传输速度达成共识(设置相同的波特率,例如每秒9600位)。 传输速率如果有微小差异不是问题,因为接收器会在每个字节的开头重新同步。相应的协议如下图所示; 如果您注意到上图…

2021年1月19日 3条评论 295点热度 2人点赞 geek-maige 阅读全文

  先说内存 程序运行在内存中,计算机中的最小存储单位是Bit,即1和0的二进制,它可以识别的机器码就是以二进制形式存储的; 内存由多个存储单元组成,每个存储单元都有一个唯一的数字地址字节可寻址内存。每个存储位置可以包含固定数量的二进制数字。 在大多数的现代计算机上,地址的最小数据的长度为8位,称为字节(1 Byte = 8 Bit); 一般计算机中用户程序直接访问的地址是虚拟内存的地址,操作系统内核会根据用户程序访问的虚拟地址,找出页表中对于的物理地址, 最终寻址到所需要的数据;具体如下图所示; 然而,…

2021年1月19日 0条评论 352点热度 2人点赞 geek-maige 阅读全文