国产实时操作系统需求(国产化实时操作系统研究之旅5-SylixOS)
任何理论研究都是从实践开始的,本文主要描述的是依照mini2440平台建立工程来体验IDE的工作原理。篇幅有限,本文只介绍工程建立方法、每个步骤的原理后续都有文章剖析。
为什么选择mini2440平台?
SylixOS支持多种处理器同时支持很多开发板,我自己现在研究的是2K1000龙芯和DSP6678平台。为什么会选择mini2440这个ARM平台,原因主要有以下几点:
- 在众多硬件平台中ARM的受众面广一些,尤其是分析内核调度方面需要一些汇编语言,选ARM作为切入点会好一些
- MINI2440核心处理器是Samsung s3c2440, 这个处理器是ARM920T核心,ARMV4指令集,最简单的汇编语言了;同时s3c2440内部结构简单,比如初始化时钟系统几行汇编就解决了,初始化内存也是十几行汇编就解决了,一上来学习高端的处理器往往会把你陷入到复杂的硬件逻辑中去,所以入门研究要选就选最简单的
- SylixOS 仿真环境直接支持MINI2440虚拟机
- 若真的需要开发板MINI2440开发板价格真的很便宜
工程建立过程有4个步骤:
1.建立操作系统工程并编译 2.建立应用软件工程生成可执行程序 3.启动硬件虚拟机 4.在虚拟机上调试可执行程序
建立操作系统工程
根据工程选择对应源码包、工具链、编译出相应的操作系统库,后续的应用软件开发需要链接的基本库都在这个工程中。在SylixOS中这个工程被称之为SylixOS Base 工程。
1. 启动RealEvo-IDE,选择工作WorkSpace路径
2. 创建 SylixOS Base 工程,选择菜单“File→New→Project”,弹出窗口中列出了 SylixOS 支持的工程类型,如图,选择“SylixOS Base”,点击“Next”,进入图所示配置页面。在“Projectname”输入框输入工程名。
选择SylixOS Standard Base 以创建标准 SylixOS Base 工程
点击“Next”进入 Base 设置页面,设置基础编译选项,含:工具链(选择arm-sylixos-toolchain)、调试级别、处理器类型和浮点类型设置。
选择要集成的组件
完成后,工程栏中会出现相应的工程和选择要集成的操作系统源码,点击创建的 Base 工程右键选择“Build Project”开始编译 SylixOS Base 工程。
系统编译原理是根据你选择的功能将对应的源代码拷贝出来集成在一个工程中,将各个功能模块都编译成动态库和静态库,后面的软件工程调用系统功能的时候通过链接系统库实现编译。
建立软件工程
创建SylixOS App工程,工程名以及指定Base工程所在的路径,注意这里Base工程就是第一步创建的工程,而且一定是要已经编译过的。
创建SylixOS App工程
指定Base工程所在的路径
编译即可在点击应用程序右键选择“Build Project”开始编译应用程序,编译完成后将在 Debug 文件夹下生成 应用程序可执行文件。
启动仿真器
选择 RealEvo-IDE的“Tools→RealEvo-Simulator”启动 RealEvo-Simulator 并启动模拟器。
选择mini2440 启动仿真器
系统启动后会出来一个模拟器系统终端可以在这个终端中操作模拟器
接下来在APP工程中配置模拟器IP信息,从界面设置可以看出,IDE与模拟器是通过网络交互的。主要交互的内容有:FTP 编译完成的APP可执行程序是通过FTP上传到模拟器对应的文件夹下; TELNET IDE可以通过TELNET远程登录模拟器作为虚拟终端;GDB 远程调试一定是通过GDB 加 GDB SERVER实现的。了解这个原理对以下配置流程应该就知道是怎么回事了,不明白的小伙伴之前肯定是对嵌入式Linux开发环境不太熟悉。
添加新设备
SylixOS App 工程部署设置
SylixOS 远程 Shell 执行 APP
我们做个总结。SylixOS的IDE 实际上是由eclipse 插件的方式实现的。
第一步,每次开发工程先建立Base工程,实际上就是选择相应的源码模块集成成一个工程,然后将模块编译成库,供后面的APP工程链接使用
第二步,每次开发工程先建立APP工程,指定Base工程所在的路径即可
第三步,启动模拟器,实际上这一步厂家已经在模拟器中集成了全功能操作系统镜像,我个人感觉这一步相对有点封闭,原厂没给出如何修改模拟器镜像的说明,对于有志向开发BSP的人来说上来有点阻碍,经过本人研究已经摸透了该模拟器的原理,后续会自己制作自己的内核镜像进行改造实验
第四步,调试程序实际上用的是FTPTELNETGDB,这些以前开发Linux经常使用,IDE只是将其集成化了,了解原理的并不难理解。
好了,本篇介绍完了。后续连续几篇文章开始对IED环境进行深入研究原理。总体上感觉系统原理、IDE设计合理较好上手。但有个最大的问题是,对于习惯vi的我,在IDE环境下写代码真很痛苦,哈哈~
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。