嵌入式os
os相关
smile_sa
菜鸡OS轮子爱好者
展开
-
STM32F7 can只能发送不能接收
昨天将师弟的电机底层can驱动代码移植到项目中,发现原本已经调好的can底层代码出现了bug:can只能发不能收了orz。。。此处省略一万字。。。通过二分查找法,最终定位到出现bug的神秘代码如下:#define ENABLE 0x11 #define DISABLE 0x12 直接find in files,好家伙,直接与f7的hal库函数一枚举变量重名typedef enum { DISABLE = 0, ENABLE = !DISABLE} Function原创 2020-12-26 09:28:51 · 1633 阅读 · 2 评论 -
IA-32e的地址转换过程
和保护模式相比最大的区别是段基地址强行置零,段地址成为了平坦地址空间。原创 2020-12-11 11:04:43 · 191 阅读 · 0 评论 -
保护模式的地址转换过程
原创 2020-12-11 09:42:55 · 134 阅读 · 0 评论 -
计算机的几种地址
一、物理地址真实存在硬件上的,通过处理器的引脚直接或间接的和外部设备相连。分为IO地址和内存地址二、虚拟地址相对于物理地址的抽象地址。1、逻辑地址段和偏移的组合。格式为Segment:Offset。偏移为称为有效地址,程序中的变量地址即为有效地址。2、线性地址由逻辑地址组合而成:Segment<<4+Offset。...原创 2020-12-10 21:22:32 · 3510 阅读 · 0 评论 -
底层知识点
汇编语言格式分为intel和AT&T两种,格式略有不同。objump -b可以将目标程序反汇编成汇编语言。指令后加l表示32位,加q表示64位。c使用关键字asm声明代码是内嵌汇编语句。原创 2020-12-09 14:54:08 · 95 阅读 · 0 评论 -
计算机开机流程
1、BIOS:开机主动执行的韧体,会认识第一个可开机的设备。2、MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序(bootloader)。第一个扇区除了MBR之外,还有整块硬盘的分区表。3、bootloader:读取内核文件执行(只能识别自己系统分区的内核文件),可以转交给其他bootloader进行内核引导。4、内核文件:操作系统内核。...原创 2019-10-16 22:23:44 · 187 阅读 · 0 评论 -
Linux内核学习
Linux引导主要分为如下几个流程:一、第一阶段1、处理器进入管理模式,禁止中断,,读取CPU的id。2、调用函数,通过枚举结构体,判断是否有与当前CPU的相同的结构体,确定内核是否支持当前CPU和当前机器。3、调用start_kernel()函数进入下一阶段。二、第二阶段1、获得处理器和开发板的结构体。2、确定bootloader传入的启动参数地址。对于S3C2440中,该地址为0...原创 2019-10-14 15:58:21 · 117 阅读 · 0 评论 -
嵌入式学习链接
运行地址和加载地址的区别:https://www.cnblogs.com/liulipeng/archive/2013/10/14/3368938.html原创 2019-10-13 21:52:04 · 99 阅读 · 0 评论 -
U-boot学习
Bootloader:系统上电进行硬件初始化,时钟,存储等。然后最重要的是将操作系统内核复制到内存中运行。ARM体系结构的CPU从地址0x00000000开始运行,Bootloader就存放在这个开始地址处,一上电就可以执行。硬件部分的程序在/board文件夹内,U-boot通过makeflie中对板子名称的枚举实现对底层程序的编译,实现硬件初始化。U-boot的移植:主要是对board文件夹下...原创 2019-10-12 11:28:52 · 84 阅读 · 0 评论 -
Linux 0.11
switch_to原创 2020-08-31 10:49:49 · 114 阅读 · 0 评论