上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 109 下一页
摘要: startup.s 功能 startup.s 文件定义了向量表,包含栈初始值和各个中断服务函数指针。 芯片一上电,自动设置SP,PC,然后执行复位中断: 设置栈顶寄存器的值 多余,芯片一上电自动设置了 data段的数据从 flash 拷贝到 SRAM bss段位于SRAM,初始化为0 执行 Syst 阅读全文
posted @ 2021-06-10 14:20 流水灯 阅读(2118) 评论(0) 推荐(0)
摘要: typedef int (*init_fn_t)(void);#define RT_USED __attribute__((used))#define INIT_EXPORT(fn, level) RT_USED const init_fn_t __rt_init_##fn SECTION(".rt 阅读全文
posted @ 2021-06-08 17:54 流水灯 阅读(2605) 评论(0) 推荐(0)
摘要: startup.s 功能 不同的开发环境(IAR、KEIL、GCC编译器),startup.s的内容多少有些差别,但是功能基本如下: 设置向量表,包含MSP初值,各中断函数指针 芯片一上电,自动设置SP,PC,然后执行复位中断: 执行 SystemInit,初始化时钟,设置SCB->VTOR的值为向 阅读全文
posted @ 2021-06-06 22:55 流水灯 阅读(1498) 评论(0) 推荐(1)
摘要: Cortex-M3 系列处理器是基于 ARMv7-M 架构的处理器,应用非常广泛,为了能够深入的分析在此平台上跑 RTOS 的各种细节,所以有必要写一篇关于 CM3 处理器的结构相关的文章(CM4 类似),在 OS 调度初始化、系统调用、进程调度等方面的细节均是和具体处理器息息相关,所以先让我们来看 阅读全文
posted @ 2021-06-06 21:58 流水灯 阅读(3356) 评论(0) 推荐(1)
摘要: FreeRTOS 第一次启动任务切换前,需要调用函数 vPortStartFirstTask,初始化 MSP,然后触发 SVC 的中断函数 vPortSVCHandler,中断函数执行出栈后就跳转到第一个任务的入口函数。 之后任务切换通过中断函数 xPortPendSVHandler,此函数会执行入 阅读全文
posted @ 2021-06-06 15:28 流水灯 阅读(2977) 评论(0) 推荐(0)
摘要: 知识点: MSP:主堆栈指针,系统复位后,默认使用MSP指针,MSP指针用于操作内核以及处理异常和中断(异常是中断的一种,中断服务程序默认强制使用MSP指针,这是硬件自动设置的) 不使用OS,非中断函数和中断函数都使用MSP PSP:进程堆栈指针,任务(进程)使用PSP指针,在vPortSVCHan 阅读全文
posted @ 2021-06-06 14:40 流水灯 阅读(1575) 评论(0) 推荐(0)
摘要: 官方文档 https://www.gnu.org/software/make/manual/make.html 目标 - 依赖文件 - 命令 目标(文件):依赖文件 命令(命令前是一个TAB键) 1、make执行的格式为:make 目标,如果不指定目标,会执行Makefile中第一个出现的没有匹配符 阅读全文
posted @ 2021-06-03 17:54 流水灯 阅读(131) 评论(0) 推荐(0)
摘要: override指示符 通常在执行 make 时,如果通过命令行定义了一个变量,那么它将替代在 Makefile中出现的同名变量的定义。就是说,对于一个在 Makefile 中使用常规方式(使用“=”、“:=”或者“define”)定义的变量,我们可以在执行 make 时通过命令行方式重新指定这个变 阅读全文
posted @ 2021-06-02 17:41 流水灯 阅读(301) 评论(0) 推荐(0)
摘要: 1 默认情况下 scanf 一读入空格或者换行字符就结束读入 [^\n]表示一读入换行字符就结束读入。这个是scanf的正则用法。 [^,\n]表示一读入逗号或者换行字符就结束读入。 [^,\n]读出数据后,逗号或者换行字符还在缓冲区内,如果后期以读取字符串的形式读出数据,会直接跳过逗号或者换行字符 阅读全文
posted @ 2021-05-31 22:53 流水灯 阅读(1444) 评论(0) 推荐(0)
摘要: 题目: 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn) double myPow(double x, int n){ if(n == 0){ return 1; } unsigned int nn; double rc = 1; int flag = 1; if(n < 0){ 阅读全文
posted @ 2021-05-28 16:25 流水灯 阅读(69) 评论(0) 推荐(0)
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 109 下一页