mcu = cpu + flash + RAM
1.RISC精简指令集计算机和CISC复杂指令集计算机(核心:汇编代码);
2.汇编基本代码:内存访问、数据处理、跳转指令;
3.串口编程:
1.过程:编译、汇编、反汇编、链接;
2.Makefile编写,简化汇编过程指令的操作;
在EMMC上烧写一个程序led.imx=头部+led.bin,头部中含有后面的led.bin读到那个addr(链接地址/运行地址),有多长len;上电后运行到ROM内的程序时,会根据头部信息将led.bin复制到内存中,并开始运行。
imx6ull和stm32f157中都有ROM中的程序将led.bin根据头部信息放在指示的位置。 stm32f103就没有这么强大的ROM,只能有程序本身把自己复制到指示的位置。
1.段的概念:将整个程序分成一个一个段,并起个名字,链接时用这个名字来指示这些段,使得这些段排布在合适的位置。内存中有程序段、可读可写数据段、只读数据段、BSS段(存放初始化为0和未初始化的变量,不需要重定位,使用的时候将那一块内存清零);(局部变量保存在栈里面)(堆是一块空闲的空间,app可以使用malloc管理);
2.重定位:
3.散列文件和链接脚本
1.处理过程:
2.Cortex 7的cpu工作的模式9种:
4.中断,三个部件:中断源、中断控制器、cpu
5.GIC中断控制器,作用:接收优先级最高的中断源分发给不同的CPU—interface,再发给相应的寄存器;
6.寄存器:
1.写寄存器流程:
11.读寄存器流程:
1.四根线:SCLK\CS\MOSI\MISO;
2.MISO和MOSI在SCLK的上升沿变化,在下降沿锁存数据;
3.SPI控制器初始化流程:
CAN总线是一种多主控(Multi-Master)的总线系统。CAN网络的消息是广播式的,即在同一时刻网络上所有节点侦测的数据是一致的,它是一种基于消息广播模式的串行通信总线。
CAN总线分高速CAN和低速CAN,收发器也分为高速CAN收发器(1Mbps)和低速CAN收发器(125Kbps)。低速CAN也叫FaultTolerance CAN,指的是即使总线上一根线失效,总线依然可以通信。如同串口中的MAX3232用作电平转换,CAN收发器的作用则是把逻辑信号转换为差分信号。
CAN总线采用差分信号传输,通常情况下只需要两根信号线就可以进行正常的通信。在差分信号中,逻辑0和逻辑1是用两根差分信号线的电压差来表示。当处于逻辑1,CAN_High和CAN_Low的电压差小于0.5V时,称为隐性电平(Recessive);当处于逻辑0,CAN_High和CAN_Low的电压差大于0.9V,称为显性电平(Dominant)。
CAN总线遵从“线与”机制:“显性”位可以覆 盖“隐性”位(和IIC相同);只有所有节点都发 送“隐性”位, 总线才处于“隐性” 状态。这种“线与”机制使CAN总线呈现显性优先的特性。
CAN网络通信是通过5中类型的帧(Frame)进行的:
通讯时序:
DS18B20 中有两类命令:ROM 命令、功能命令
总线上只一个 DS18B20 设备时,根据下表发送命令、读取数据。因为只有一个 DS18B20,所以不需要选择设备,发出“Skip ROM”命令。然后发户“Convert T”命令启动温度转换;
本文作者:zzw
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 License 许可协议。转载请注明出处!