SylixOS

SylixOS BSP开发(十八)

高精度时间修正 1. TICK工作原理 其实这应该说“定时器工作原理”更合适些,1个系统tick就是一个定时器硬件中断,全志R16定时器的工作原理很简单,就是内部有一个递减的计数器,当减到0时产生一个...
阅读全文
SylixOS

SylixOS BSP开发(十五)

验证中断系统 上一章节我们已经完成了BSP中的中断系统接口实现,现在该验证下中断控制器是否能正常工作了。我们可以在系统TICK的中断处理函数中添加一个打印信息: 如果中断系统正常工作的话,当TICK产...
阅读全文
SylixOS

SylixOS BSP开发(十二)

SylixOS内核启动过程简单分析 通过前面的学习我们已经掌握了SylixOS BSP开发的最基础的内容,现在大家至少能快速地在一块开发板上移植SylixOS并且能启动到显示Logo阶段了。现在我们暂...
阅读全文
SylixOS

SylixOS BSP开发(十三)

实现系统TICK初始化 通常情况下我们会选择一个定时器用于产生系统所需要的TICK中断,在全志R16平台上有两个24bit硬件定时器,使用时用户设置一个初始值,启动后定时器进行递减,如果减到0则可以产...
阅读全文
SylixOS

SylixOS BSP开发(十七)

bspLib.c其他接口介绍 经过前面的学习,我们已经实现了bspLib.c中的中断和TICK相关的接口,在这个文件中还有一些其他的接口,下面我们就一起来看看这些接口的功能。 1. BSP信息获取相关...
阅读全文
SylixOS

SylixOS BSP开发(十一)

SylixOS启动初体验 通过前面的学习,我们已经完成了SylixOS内核入口文件设置、内核VMM映射表设置和串口SIO驱动这几个比较重要的功能,这下我们可以再次编译内核启动,这次内核是可以成功输出S...
阅读全文
SylixOS

SylixOS BSP开发(十)

实现串口SIO驱动(二) 在实现SIO驱动操作集之前,我们先来学习下SylixOS下标准输出、标准输入、标准出错时如何工作的: 标准输出:当程序中使用printf打印信息时,就是往系统标准输出上输出信...
阅读全文
SylixOS

SylixOS BSP开发(六)

物理内存空间配置 1. 物理内存段配置 SylixOS将物理内存划分成4个区域进行使用:内核代码区,内核数据区,DMA内存区和APP内存区。系统启动开启MMU后会将内核代码区和内核数据区的物理地址和虚...
阅读全文
SylixOS

SylixOS BSP开发(八)

初始化FPU、MMU和Cache组件 本来想在不初始化这些部件的情况下把SylixOS先启动起来感受下,结果测试发现如果MMU不使能的话,系统启动过程中线程无法进行调度emm。。。所以只好把这一章节提...
阅读全文
SylixOS

SylixOS BSP开发(五)

内核启动参数设置 SylixOS内核启动的时候需要传入一些参数以打开、关闭或者设置内核的一些功能组件,这是通过调用API_KernelStartParam 这个接口来实现的: 这些参数根据实际的需要进...
阅读全文
SylixOS

SylixOS BSP开发(二十五)

写在结尾的话 其实在一周前这个BSP开发系列教程就写完了,就差一个结束的篇章,正好借着往PSV上传游戏的时间给他写了。整个教程应该还算是比较基础的,属于比入门稍微高一点的水准的,在第一篇开始的时候也说...
阅读全文
SylixOS

SylixOS BSP开发(二)

引导SylixOS 在学习BSP移植之前,我们先来看看SylixOS是如何被Bootloader引导起来的。我们都知道,任何一种操作系统内核运行之前都需要通过某种方式导入到内存中,然后CPU跳转到内核...
阅读全文