摘要:
CMSIS-RTOS API是基于Arm®Cortex®-M处理器的设备的通用RTOS接口。CMSIS-RTOS为需要RTOS功能的软件组件提供标准化API,从而为用户和软件行业带来了巨大的好处。 CMSIS-RTOS提供许多应用程序或技术(如UML或Java(JVM))所需的基本功能。 CMSIS 阅读全文
摘要:
void的含义 void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。 void指针使用规范 ①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如: int *pint; void *pvoid; pvoid = pint; /* 不过不能 阅读全文
摘要:
//测试截断 #include <stdio.h> int main() { int a = 0x80000001; unsigned int b = 0x80000001; printf("有符号数a的值是%d\n", a); printf("无符号数b的值是%x\n", b); //有符号数与无 阅读全文
摘要:
//测试移位 #include int main() { //测试存储数据的方式:补码 int a = -1; unsigned int b = 1U; printf("有符号数a的值是%x\n", a); printf("无符号数b的值是%x\n", b); //测试原码左移 a = a > 3; b = b >> 3; ... 阅读全文
摘要:
成员a的偏移量就不用看了,上面有说每一个结构体第一个成员的偏移量都为0;但他的大小是1,也就是成员b的偏移量,成员b的大小是4,1不是4的倍数,所以a的大小1应该加上3,就是4,成员3的偏移量是8,成员c的大小是8,成员c的偏移量是成员c大小的倍数,就不用增加大小,成员d的偏移量是16,成员d的大小 阅读全文
摘要:
结构体的大小是20,在对指向结构体a的指针p做自减后,他的地址变化量为20; 对指向char型数据的指针做自减后,地址变化量为1; 对二级指针做自减后,地址变化量为4,因为二级指针p2指向的是p1,变化量为p1的大小(32位系统); 阅读全文
摘要:
1、NVIC的优先级概念 占先式优先级 (pre-emption priority): 高占先式优先级的中断事件会打断当前的主程序/中断程序运行— —抢断式优先响应,俗称中断嵌套。 副优先级(subpriority): 在占先式优先级相同的情况下,高副优先级的中断优先被响应; 在占先式优先级相同的情 阅读全文
摘要:
首先介绍一下静态库(静态链接库)、动态库(动态链接库)的概念,首先两者都是代码共享的方式。 静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。即静态库中的指令都全部被 阅读全文
摘要:
SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。即辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。 API API API(Application Programming Interface,应用编程接口)其实就是操作系统留 阅读全文
摘要:
1:什么是UBOOT,为什么要有UBOOT? UBOOT的主要作用是用来启动linux内核,因为CPU不能直接从块设备中执行代码,需要把块设备中的程序复制到内存中,而复制之前还需要进行很多初始化工作,如时钟、串口、dram等; 如要想让CPU启动linux内核,只能通过另外的程序,进行必要的初始化工 阅读全文