SylixOS ARM BSP 文件结构

SylixOS bsp 开发经验总结 SylixOS bsp 阅读详情

SylixOS 是国人自己开发的开源实时操作系统,该系统符合 IEEE1003 POSIX 操作系统规范,功能强大开发便利,系统主页:www.sylixos.com


此篇博客为 SylixOS BSP 编写连载的第一篇,力求以深入浅出的方法介绍 SylixOS ARM BSP 的编写方法。


SylixOS BSP 分为两大部分:

  1. 基础支持程序

  2. 驱动程序


其中【基础支持程序】主要是实现系统的启动流程与硬件板最基础的功能实现,例如中断控制器管理,TICK 定时器管理,初始内存映射管理等等。【驱动程序】主要是实现操作系统对外部设备的管理。


此篇博客主要介绍 SylixOS BSP 文件的构成。SylixOS BSP 可通过 RealCoder(SylixOS 集成开发环境,可点击这里申请下载)创建,创建出来的 BSP 模板分为三个文件夹:bsp、driver、user。

  1. bsp 文件夹下的文件对应的就是【基础支持程序】;

  2. driver 文件夹下的文件对应的就是【驱动程序】;

  3. user 目录为 t_main 内核线程实现,可以根据项目需要加入自己的代码。


bsp 文件夹下存在至少 5 个源文件,他们分别是:config.h、startup.S、bspInit.c、bspLib.c、bspMap.h。当然 SylixOS 并不严格规定 BSP 必须这样写,只是长期以来形成的习惯。

  1. config.h 文件包含板子的基本配置情况,如果本 bsp 包含对多种板子的支持,则可以在 bsp 目录下再建立一些针对各种板子的文件夹,具体方法可参考TI 335x BSP 点击下载。

  2. startup.S 文件是系统的启动入口。

  3. bspInit.c 文件是 bsp 初始化入口,其中初始化函数为 bspInit(),此函数会被 startup.S 文件调用。

  4. bspLib.c 文件是【基础支持程序】主要实现部分,包括中断管理,TICK 初始化等等。

  5. bspMap.h 文件是操作系统内存布局设置与初始映射配置。


driver 文件夹下就是【驱动程序】的实现,内部分为很多子文件夹,每一个文件夹都是指定设备的驱动程序,例如 uart (或者 sio tty 等)是代表串口的驱动程序。这个在以后的博客中将会介绍具体的驱动程序编写方法。


user 目录包含 t_main.c 文件,系统完成所有的初始化后进入多任务模式,其中 t_main 是 BSP 创建的内核任务,SylixOS 既可以像 Linux 一样动态装载用户进程,也可以像其他小型 RTOS 一样直接将用户应用程序和 BSP 一起编译,运行在内核空间,如果选择将应用程序和 BSP 一起编译,t_main 任务可以认为是用户应用程序的入口,不过 SylixOS 还是不推荐这种方法,SylixOS 推荐开发者像使用 Linux 或者 Windows 一样,将指定的应用编译成独立进程,通过 SylixOS 装载器动态装载执行,方便升级与调试。


(此篇完)

文章转载出处:http://hanhui03.blog.51cto.com/10427533/1663454


SylixOS BSP 开发连载 SylixOS 简介: SylixOS是一款嵌入式硬实时操作系统,同其类似的操作系统,全球比较知名的还有VxWorks(主要应用于航空航天、军事与工业自动化领域)、RTEMS(起源于美国国防部导弹与火箭控制实时系统)、ThreadX(主要应用于航空航天与数码通讯)等。 从全球范围上看,SylixOS作为实时操作系统的后来者,在设计思路上借鉴了众多实时操作系统的设计思想,其中就包括RTEMS、Vx 阅读详情

相关推荐

SylixOS 无Uboot版BSP

函数栈 物理内存分布 介绍函数栈之前,先介绍SylixOS Lite版本ARM平台的内存分布,根据BSP工程的连接脚本SylixOSBSP.ld可知,SylixOS的物理内存主要分为五段: TEXT段又称代码段,主要存放执行代码,有执行权限; DATA段又称数据段,主要放已经初始化好的全局变量; BSS段主要存放未初始化的全局变量; 栈又称堆栈,可存放函数的局部

xiaoyaolanyun的博客 1167

SylixOS BSP开发(七)

另外需要说明的是,在本系列教程中并不会去详细地讲解外设驱动寄存器具体如何设置,我们这里关心的是BSP的框架和开发的整体流程,至于寄存器怎么设置请参考厂商提供的U-Boot或者Linux下的对应代码。当系统出错时或者使用内核日志时会输出一些打印信息,这最终都是调用到bspLib.c中的bspDebugMsg 这个接口来实现的,所以我们在开发BSP时,第一个要做的工作就是实现这个接口。另外在开发的过程中,可能需要带参数打印一些信息,这时候就不能使用。1,我们这里的打印参照的是正点原子的裸机的串口打印的程序。

一步一步往上爬 772

SylixOS的BSP开发实例之S3C2416 【第二篇】内存映射与初始布局

在SylixOS的S3C2416的BSP包中有“SylixOS/bsp/bspMap.h”文件,此文件是操作系统内存布局设置与初始映射配置,在文件的开始有内存分配的描述,描述如下图。   其中 MMU 页面标识可以在 SylixOS 的 BASE 工程中 “SylixOS/kernel/vmm/pageTable.h” 中获取到,具体参数描述如下图。 /********

zth_gyj的博客 1317

1、了解嵌入式系统、arm、内核、驱动、OS、MMU等专有名词

嵌入式系统:嵌入到对象体中的专用计算机系统嵌入式系统与通用计算机不同之处:硬件可裁剪嵌入式系统的特点:专用、软硬件可剪裁可配置低功耗、高可靠性、高稳定性软件代码短小精悍代码可固化实时性弱交互性软件开发需要专门的开发工具和开发环境要求开发、设计人员具有较高的技能嵌入式系统的组成:软件(含驱动、OS、应用层) + 硬件嵌入式系统硬件组成1、嵌入式处理器(CPU):嵌入式系统的核心部分,分为...

weixin_30478757的博客 669

SylixOS操作系统Makefile解析

sylixos 操纵系统 makefile 内容自己分析。内容不全。

mini-arm-os, 从头开始构建 ARM Cortex M 系列的最小多任务操作系统内核.zip

mini-arm-os, 从头开始构建 ARM Cortex M 系列的最小多任务操作系统内核 构建最小的多任务操作系统内核先决条件带有STM32微控制器实现的 QEMU 。生成说明./configure --disable-werror --enable-debug --target-list="a

SylixOS学习三—— SylixOS的引导与安装1

自学SylixOS启程之旅笔记一、SylixOS 引导过程分析1. SylixOS 常用引导程序2. SylixOS 支持ARM设备的几种引导方式3.SylixOS引导过程分析——总流程分析3.1 一个设备从上电到启动完成的整个流程3.2 引导程序和操作系统镜像的存储3.3 U-Boot引导SylixOS3.4 引导过程中的几个基本概念 《SylixOS启程之旅》是一门公开课,点开下面链接即可观看: SylixOS启程之旅 一、SylixOS 引导过程分析 1. SylixOS 常用引导程序 U-Boo

graceyun的博客 4419

SylixOS应用开发手册.pdf

本书描述了 SylixOS 的程序设计接口,它们包括 :SylixOS系统 API函数、 POSIX标准 API函数 和标准 C提供 的众多 函数,本书适合于 所有 的程序员 。 SylixOS作为一款 先进的实时嵌入式操作系统, 已被广泛应用在 航空航工业自动化、 通信、新能源等领域。SylixOS与众多操作系统类似(如 VxWorks和Linux 等), 为程序运行 提供了大量的服务 。 SylixOS是一款国产的开源实时操作系统,因此可以方便地获取源码 (可通过www.sylixos.com 获 取 SylixOS源码) ,通过 SylixOS源码来学习本书的知识, 也可以 跟随书中的例子一步一步地验证每一节的知识。

SylixOS ARM BSP 第一篇【文件结构】

SylixOS 是国人自己开发的开源实时操作系统,该系统符合 IEEE1003 POSIX 操作系统规范,功能强大开发便利,系统主页:www.sylixos.com 此篇博客为 SylixOS ARM BSP 编写连载的第一篇,力求以深入浅出的方法介绍 SylixOS ARM BSP 的编写方法。 SylixOS BSP 分为两大部分: 基础支持程序 驱动程序

sun_junhui的博客 2235

SAP-PP MD04详解一

MD04是SAP运行MRP后的结果查询事务码,其他功能强大,标准功能比如:查询/更改物料主数据、转换计划订单到生产订单/采购申请、查询/更改各个MRP元素对应的单据等等。而且还可以附加标准的菜单或者自定义添加事务码上去。老铁将做一个MD04详细说明系列,本篇为第一篇之MRP元素说明。 我们来看看MD04基本界面 可以看到主要的数据显示界面,有日期、MRP元素、MRP元素数据、再计划日期、收货/需求、可用数量、工厂、库存地点等栏位。光标定位到MRP元素列,按F1即可看到各类MRP元素的说...

weixin_52158549的博客 1万+

衡山派Luban-Lite系统SDIO无线网络配置实战:以D133CBV-QFN88开发板与RTL8189模组为例

本文详细介绍了在衡山派D133CBV-QFN88开发板上,为Luban-Lite系统配置SDIO无线网络的完整实战流程。通过配置SDMC接口、RTL8189 Wi-Fi驱动、lwIP协议栈及内核参数,并解决编译分区问题,最终实现Wi-Fi网络连接与测试,为嵌入式设备联网提供清晰指导。

weixin_35677363的博客 266

SylixOS ARM BSP 第二篇【startup.S】

此篇博客为 SylixOS ARM BSP 编写连载的第二篇,主要介绍 startup.S 文件具体实现。 startup.S 为 BSP 启动代码入口,通常由 bootloader 装载完 SylixOS 镜像后调用,下面以 S3C2440A 处理器为例,逐块介绍startup.S 代码。 #ifndefASSEMBLY #defineASSEMBLY1 #endif 此段代码告知后面引用的头文件,此文件为汇编程序。 #include<arch/assembler.h> ...

动感超人_Crush 745

(1)大蚂蚁即时通讯

即时通讯软件BigAnt(大蚂蚁)是杭州艾朴软件推出的一个”企业级”的即时通讯平台。该平台专为企业,其他企事业单位和政府单位而设计,目的就是为了增强内部沟通能力,提高内部员工的工作效率;同时服务器就直接置于单位内部,所有信息由单位自己管理,让单位以更安全、更可伸缩和更易于管理的方式灵活方便地使用协同和通信服务的功能! BigAnt(大蚂蚁)即时通讯软件包括服务器端和客户端。客户端功能包括单位

少安的砖厂 2233

SylixOS ARM BSP 第三篇【bspInit.c】

此篇博客为 SylixOS ARM BSP 编写连载的第三篇,主要介绍 bspInit.c 文件具体实现。 bspInit.c 为 BSP 操作系统初始化部分代码,通常由 startup.S 初始完基本处理器参数后调用,下面以 S3C2440A 处理器为例,逐块介绍 bspInit.c 代码。 SylixOS ARM BSP 第二篇中提到 startup.S 初始化完成会

sun_junhui的博客 1187

win11怎么安装dosbox和masm来运行汇编程序(小白,萌新篇)

一文教会你如何部署dosbox和masm环境

m0_73279193的博客 4699

200_matlab处理NCEP数据并画全球彩色的风场图

200_matlab处理NCEP数据并画全球彩色的风场图。

miaobo0的博客 1237

SylixOS BSP开发(八)

所以只好把这一章节提前来讲了。这三个组件的初始化都是在bspInit.c中进行的。接口使能了指令Cache和数据Cache,可以看出Cache的初始化还是比较简单的,因为内核已经为大部分arm架构封装好了Cache等部件的操作,我们只需要调用接口即可。第一个参数表示当前CPU的架构,第二个参数表示当前SOC中FPU使用的类型,这两个参数根据芯片数据手册的信息然后使用内核提供好的宏填入就行了。中映射表的设置,另外一个是内核VMM组件初始化,最后是MMU页表池大小设置,下面我们分别来学习下这两部分的内容。

一步一步往上爬 478

告别MATLAB依赖:手把手教你用Python实现GCC-PHAT时延估计(附完整代码与对比测试)

本文详细介绍了如何使用Python实现GCC-PHAT时延估计算法,替代传统的MATLAB依赖。通过完整的代码示例和性能对比测试,展示了Python在信号处理领域的强大能力,特别是在广义互相关和TDOA应用中的高效实现。文章还提供了实时音频处理和嵌入式部署的实用技巧,帮助工程师快速掌握这一关键技术。

weixin_42667269的博客 220
下一篇: SylixOS JobQueue 简介
flags_s
博客等级 码龄11年 15粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值