Linux内核基础

本文阐述系统为x86体系架构,idt,gdt,tss,系统启动引导过程均以x86架构为蓝本,arm可能不适用

阅读全文 »

项目

FreeRTOS内核实现

参考书籍:《FreeRTOS 内核实现与应用开发实战指南》

一个工程如果没有 main 函数是编译不成功的,会出错。因为系统在开始执行的时候先执行启动文件里面的复位程序,复位程序里面会调用 C 库函数__main,__main 的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。__main 最后会调用__rtentry,再由__rtentry 调用 main 函数,从而由汇编跳入到 C 的世界,这里面的 main 函数就需要我们手动编写,如果没有编写 main 函数,就会出现 main 函数没有定义的错误。

阅读全文 »

Python

Python基础

解释器与编译器

解释器输出运行的结果
编译器输出编译的文件

字面量:写在代码中的值,可以被分为整数,浮点数,字符串,元组,列表等
python的单引号和双引号意义相同,但是使用单引号可以打出双引号,但不能打出单引号。使用双引号则反之,如果想使用单引号打出单引号,则需要加上反斜杠代表转义字符

阅读全文 »

杂项

硬件

SOC: system on chip
电机会有死区电压,表现为电压很低时电机不能启动,死区电压约占额定电压的10%,此时需要给一PWM占空比最小值从而避免死区电压

阅读全文 »

工具链

Git

Git本地操作

版本控制系统分为2种

  • 集中式版本控制系统 如SVN
  • 分布式版本控制系统 如Git
阅读全文 »

FreeRTOS

使用静态创建任务函数的话,返回值就是句柄,因此,要想对静态函数创建出来的任务进行操作的话需要创建一个临时变量以记录其返回值
使用vTaskDelet函数要注意不要在自己的进程内部自杀,这样会导致空闲任务无法清理内存

阅读全文 »

Vim复健计划

命令模式
o 新建下一行并切换到编辑模式
O 新建上一行并切换到编辑模式
[n]x 包括光标的后n位剪切,若改为X,则是光标前n位但包括光标所在的字符
[n]yy 包括光标的后n行复制
[n]dd 包括光标的后n行剪切
[n]p 粘贴复制的内容n遍

阅读全文 »

STM32

STM32 常用寄存器缩写: CR 控制寄存器 SR 状态寄存器 DR 数据寄存器
ST公司出品的Microcontroller(微控制器) Cortex-M内核 学习的是M3内核
供电电压 2.0V-3.6V(标准3.3V),USB输出电压是5V
AHB 先进高性能总线
APB 外设总线
内核的外设不需要开启时钟

阅读全文 »
0%