12 2020 档案
摘要:0. 前言 一般我们购买一个开发板,厂家都会给出对应的电路图文件,我们可以通过搜索对应名称来查找到对应的外设。对于驱动工程师来说,我们只需要知道外设与SOC交互的一些数据线和信号线即可。 用主控芯片控制这些外设的一般步骤: 看电路原理图,弄明白主控芯片和外设是怎么连接的,对于驱动工程师来说,主要是看
阅读全文
摘要:作为过来人,我发现很多程序猿新手,在编写代码的时候,特别喜欢定义很多独立的全局变量,而不是把这些变量封装到一个结构体中,主要原因是图方便,但是要知道,这其实是一个不好的习惯,而且会降低整体代码的性能。 另一方面,最近有幸与大神【裸机思维】的傻孩子交流的时候,他聊到:“其实Cortex在架构层面就是更
阅读全文
摘要:0. 粉丝提问 粉丝提问: 我们的电脑是如何获得路由器自动分配的ip地址,并实现上网的? 粉丝提问,一口君必须满足! 好在一口君对网络协议还是比较熟悉的,毕竟当年也有几篇专利,做过的网络协议模块一大堆。 【本文默认大家了解了IP地址,及其分类】 一、家庭网 这个问题说难不难,但是要想解释清楚,我们还
阅读全文
摘要:一、gcc 内联汇编 内联汇编即在C中直接使用汇编语句进行编程,使程序可以在C程序中实现C语言不能完成的一些工作,例如,在下面几种情况中必须使用内联汇编或嵌入型汇编。 程序中使用饱和算术运算(Saturating Arithmetic) 程序需要对协处理器进行操作 在C程序中完成对程序状态寄存器的操
阅读全文
摘要:《嵌入式工程师到底要不要学习ARM汇编指令?arm学习文章汇总》 《到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】》 关于ARM指令用到的IDE开发环境可以参考下面这篇文章 《1. 从0开始学ARM-安装Keil MDK uVision集成开发环境
阅读全文
摘要:往期问答汇总: 粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数 一个端口号可以同时被两个进程绑定吗? 两个线程,两个互斥锁,怎么形成一个死循环? 一个例子让你看清线程调度的随机性 5. 从0开始学ARM-MRS、MSR、寻址操作、原子操作原理 一、粉丝提问 fork出的进
阅读全文
摘要:一、异常(Exception) 异常是理解CPU运转最重要的一个知识点,几乎每种处理器都支持特定异常处理,中断是异常中的一种。 有时候我们衡量一个操作系统的时候实时性就是看os最短响应中断时间以及单位时间内响应中断次数。 二、异常源 在ARM体系结构中,存在7种异常处理。当异常发生时,处理器会把PC
阅读全文
摘要:一、程序状态寄存器访问指令 ARM微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据。 MRS MRS{条件} 通用寄存器,程序状态寄存器(CPSR或SPSR) MRS指令用于将程序状态寄存器的内容传送到通用寄存器中。 该指令一般用在以下几种情况: 当需要改变程序状态寄
阅读全文
摘要:关于ARM的一些基本概念,大家可以参考我之前的文章: 《到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】》 关于ARM指令用到的IDE开发环境可以参考下面这篇文章 《1. 从0开始学ARM-安装Keil MDK uVision集成开发环境》 《2.
阅读全文
摘要:《到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】》 关于ARM指令用到的IDE开发环境可以参考下面这篇文章 《1. 从0开始学ARM-安装Keil MDK uVision集成开发环境》 《2. 从0开始学ARM-CPU原理,基于ARM的SOC讲解》
阅读全文