专业名词(一)
VIC(Vector Interrupt Controller)和GIC(General Interrupt Controller)
VIC向量中断控制器,8051的中断方式,对于每个外设MCU 硬件都提供了唯一的一个固定的中断向量地址。
GIC通用中断控制器,九齐MCU的中断方式,所有中断有一个统一的中断地址,发生中断后,在中断函数中通过查询中断标志位执行中断需要的操作。
PC机与MCU的形态对此
PC | MCU |
CPU | ALU(逻辑数学计算) |
硬盘 | FLASH(OS固件,应用数据) |
内存 | DRAM(运算中的数据变量存储) |
bios | FLASH(原厂IAP) |
USB | UART/SPI/USB通信接口外设 |
显卡 | 独立(乘除)运算器+显示屏驱动接口 |
声卡 | DAC |
MIC | ADC |
主板 | AHB总线 |
UP(单核)与 SMP(多核)模式
LPWA:低功耗广域网LPWAN,又叫NB-IOT支持低功耗设备在广域网的蜂窝数据连接。
MQTT: 消息队列遥测传输,是在TCP/IP协议基础上的一个通信模式,消息发送和接收是按照消息主题(类比帧ID)标识,消息发送必须用主题标识,接收设备需要订阅主题才能接收到该主题下的信息。
FOTA: 基于云端的固件升级
CoAP:是一个基于UDP的类web协议(HTTP),由于MCU资源的限制而产生,用于发送HTML格式的数据。例如华为专业互通组件agenttiny。
LwM2M(Lightweight M2M,轻量级M2M),由开发移动联盟(OMA)提出,是一种轻量级的、标准通用的物联网设备管理协议,可用于快速部署客户端/服务器模式的物联网业务。
LwM2M为物联网设备的管理和应用建立了一套标准,它提供了轻便小巧的安全通信接口及高效的数据模型,以实现M2M设备管理和服务支持。
DTLS:是支持UDP的TLS数据安全传输协议。
POSIX:可移植操作系统接口,为了提高不同操作系统的兼容性和应用程序的可移植性而制定的一套标准。
完成同一功能,不同内核提供的系统调用(也就是一个函数)是不同的,例如创建进程,linux下是fork函数,windows下是creatprocess函数。好,我现在在linux下写一个程序,用到fork函数,那么这个程序该怎么往windows上移植?我需要把源代码里的fork通通改成creatprocess,然后重新编译...
posix标准的出现就是为了解决这个问题。linux和windows都要实现基本的posix标准,linux把fork函数封装成posix_fork(随便说的),windows把creatprocess函数也封装成posix_fork,都声明在unistd.h里。这样,程序员编写普通应用时候,只用包含unistd.h,调用posix_fork函数,程序就在源代码级别可移植了。
CMSIS:是arm公司提供的一套通用内核接口。POSIX与CMSIS接口是一套OS的接口标准,提高应用与OS的兼容性。
静态内存管理:静态内存池由一组相同大小的内存块构成,在静态内存池中分配1个内存块就是静态内存管理。基本数据类型变量的分配就是静态内存管理。
动态内存管理:在动态内存池中分配用户指定大小的内存块。数组,结构体变量的分配就是动态内存管理。