自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 uCOS-II在STM32F103ZET6上的移植(二)

上一篇对uCOS-II库进行解析。移植之后,应该怎么使用这些库函数呢?这一篇解析如何使用库函数,实现操作系统基本功能。

2024-04-14 00:56:06 411 1

原创 uCOS-II在STM32F103ZET6上的移植(一)

使用的是micrium 官方移植包。

2024-04-01 16:18:45 728

原创 嵌入式实时操作系统(μCOS-II)

嵌入式实时操作系统主要用于控制和管理实时任务,以满足实时性要求和对资源的有效管理。

2024-03-28 15:40:05 616 1

原创 ARM Cortex-M3内核

Cortex-M3 是一个 32 位处理器内核,可寻址空间为2的32次方个字节,即4,294,967,296个字节,即4GB。

2024-03-27 15:31:11 982

原创 30天自制操作系统(第16天)

为了提高复用性(新增任务数量,不用修改task_switch),也不用考虑GDT的情况,所以做了代码的优化。

2024-03-25 16:48:12 614 1

原创 30天自制操作系统(第15天)

同一时刻,与原则上系统只能运行一行代码。实际的操作系统中,多任务极其常见,这些任务之间是可以跳转的。如果相互跳转的频率很快,人眼看起来就像是在同时运行一样。

2024-03-22 15:48:24 413 1

原创 30天自制操作系统(第12、13天)

定时器每隔一段时间发送一个中断信号给CPU,便于CPU计量时间。C语言链表是一种数据结构,用于存储和组织数据。链表由一系列节点组成,每个节点包含一个数据项和一个指向下一个节点的指针。与数组不同,链表的节点在内存中可以不连续存储,通过指针连接起来。

2024-03-21 15:49:49 278 1

原创 30天自制操作系统(第十一天)

所谓高速计数器,其实就是定义一个变量counter,在系统的大循环中无条件快速累加,再把这个counter的值打印到我们创建的窗口中。for (;;count++;这样直接一直打印和累加的写法不高明,作者做了两次优化。

2024-03-20 15:12:53 251 1

原创 30天自制操作系统(第十天)

buf:这是一个指针,指向图层上要显示内容bxsize:图层的x大小bysize:图层的y大小(bxsize*bysize就是图层的整体大小)vx0:图层在背景画面的相对位置xvy0:图层在背景画面的相对位置y(图层在背景画面上的位置,从此位置开始显示)col_inv:透明色色号height:图层高度flags:存放图层有关的各种设定信息。

2024-03-19 16:11:18 706

原创 30天自制操作系统(第九天)

①、选定一块地址范围②、在地址范围内,依次给地址写入值③、写入值之后,将写入的值反转④、把反转后的值读出,检查反转值是否正确,⑤、把反转后的值再次反转⑥、检查是否恢复原值,以判断地址空间是否可用。

2024-03-09 16:28:37 215 1

原创 30天自制操作系统(第八天)

30天自制操作系统(第八天)

2024-03-04 18:02:32 270

原创 30天自制操作系统(第七天)

软件FIFO的实现通常依赖于编程语言提供的数据结构和算法。用C语言实现的代码如下如上代码,FIFO是一个缓冲区,它可以管理数据的读取和写入,并返回FIFO当前状态。可以说,在实时操作系统中,这种结构是极为重要的,试想一下,对于一直有数据的读取和写入的系统,为了防止数据的丢失,一昧的把缓存区做的更大是无济于事的,因为数据一直在被写入和读取,随着时间的推移仍然会发生溢出,并且数据的管理变得复杂。使用FIFO之后,完美的解决了这些问题,FIFO广泛的应用在各种通信过程。如上代码,PUSH将数据压入栈顶

2024-03-04 17:18:26 229

原创 30天自制操作系统(第六天)

硬件FIFO的工作原理如下:输入数据通过寄存器逐个存储到FIFO的入队列中,计数器记录存储在FIFO中的数据数量。当输出模块准备好接收数据时,控制逻辑电路将数据从FIFO的出队列中取出,并传递给输出模块。软件FIFO常用于多线程编程、数据缓冲、任务调度、事件处理等场景,提高系统的数据处理效率和实时性。最常用的是FIFO数据缓冲器(先进先出),FIFO是一种数据存储结构,数据按照先进先出的顺序进入和离开缓冲器。与硬件FIFO不同,软件FIFO是通过编程实现的,不依赖于特殊的硬件电路。

2024-01-21 15:03:28 354 1

原创 30天自制操作系统(第五天)

所以,用GDTR寄存器储存了GDT表的起始地址、最大元素上限,使用时,可以以此查询想获取的段信息。在VRAM上创建一个16*16(像素)的区域,如果数组元素为o打印为白色,数组元素为*打印为黑色,这样就描画出了箭头。在VRAM上创建一个8*16(像素)的区域,如果数据位为1,用黑色打印,数据位为0,白色打印。GDT表是一段总大小64kb,每个元素为8字节的内存数据段。GDTR储存的是GDT表的起始地址,以及GTD表的最大元素上限。如上图所示,首先需要明确的是GDTR和GDT表的区别和联系。

2024-01-20 20:19:21 305

原创 30天自制操作系统(第四天)

上述代码是定义了16种颜色(16种颜色足够了)。二维数组table_rgb[16 * 3]中,16代表的是16种颜色,3是每种颜色的三个元素值(三个元素值分别对应RGB数值)上述代码是c调用汇编语言实现了对调色板的访问。把定义的16种颜色写入调色板。VRAM值从0~15分别对应第一章节里设置的16种颜色。VRAM地址和画面的对应关系如下图。我们这里使用的是0x13。

2024-01-14 16:02:27 346 1

原创 30天自制操作系统(第三天)

1、C语言是32位模式,不能用C调用BIOS(16位),所以想在汇编中调用BIOS设置画面模式,并保存画面模式信息到内存,以便在C中读内存获取这些信息。以前就看过汇编代码函数名前面带_,作者告诉我们,这是为了跟c语言之间链接,还要注意汇编代码函数要用GLOBAL全局声明。其实也就是传统的,预处理-->编译-->汇编-->链接,作者这套流程更详细!到这里汇编代码基本结束了,真的是松了一口气,后面C代码就很轻松很多。2、实现从汇编跳转到C语言的Main函数的功能。

2023-10-28 22:17:50 44

原创 30天自制操作系统(第二天)

有了下面的.bat,就可以实现使用!cons_nt.bat命令窗口调用makefile中定义的命令。如果make run提示copy失败,可以把copy改为cp,亲测有效。这句话是在给AX赋值0,完成AX寄存器的初始化,下面是寄存器列表。这句话的意思就是告诉编译器,程序从地址0x7c00开始运行。这句话的意思就是告诉编译器,程序跳转到entry所在的地址。仅有上述mafile文件还不够,需要借助.bat来调用。直接输入make run,可以直接编译运行。

2023-10-28 14:37:42 53

原创 30天自制操作系统(第一天)

学习基础,共同学习

2023-10-26 23:57:53 74

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除