SylixOS

SylixOS BSP开发(十三)

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

SylixOS BSP开发(十二)

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

SylixOS BSP开发(十一)

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

SylixOS BSP开发(十)

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

SylixOS BSP开发(九)

实现串口SIO驱动(一) 在SylixOS中,不管是调试串口还是通信串口都是以TTY设备的形式注册到内核中使用,每一个串口设备都在/dev/ 目录下有一个对应的ttyS* 设备名的设备: BSP在启动...
阅读全文
SylixOS

SylixOS BSP开发(八)

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

SylixOS BSP开发(七)

实现系统调试信息打印接口 当系统出错时或者使用内核日志时会输出一些打印信息,这最终都是调用到bspLib.c中的bspDebugMsg 这个接口来实现的,所以我们在开发BSP时,第一个要做的工作就是实...
阅读全文
SylixOS

SylixOS BSP开发(六)

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

SylixOS BSP开发(五)

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

SylixOS BSP开发(四)

修改内核入口文件 SylixOS内核入口文件是startup.S,这个文件是用汇编写的,在这个文件中会做一些必要的初始化工作,然后跳转到C语言编写的代码中继续执行。创建BSP工程时会自动生成start...
阅读全文
SylixOS

SylixOS BSP开发(三)

创建BSP工程 在实际的项目中,如果需要开发一款新的BSP,一般都是拿一个已有的BSP在此基础上做修改而成。但是在本教程中,我们完全从头开始创建一个空的BSP模板,带领大家一步步的完善这个BSP,最后...
阅读全文
SylixOS

SylixOS BSP开发(二)

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