2018 年龙芯技术培训主题二
龙芯嵌入式操作系统
龙芯嵌入式图形解决方案
龙芯中科技术有限公司
安全应用事业部
2018 年 10 月
第一部分 龙芯嵌入式操作系统
目 录
1 龙芯嵌入式操作系统 .................................................................................... 1
1.1 龙芯嵌入式操作系统介绍 ................................................................ 1
1.1.1 workbench 开发环境安装 ........................................................... 1
1.1.2 vxWorks 系统结构 ....................................................................... 1
1.1.3 vxWorks 系统启动流程 ............................................................... 3
1.1.4 worbench 目录结构 ..................................................................... 5
1.2 龙芯 VXWORKS 二维、三维图形 ..................................................... 6
1.2.1 龙芯 vxWork 图形-安装过程 ..................................................... 7
1.2.2 龙芯 vxWork 图形-使用用例 ..................................................... 8
2 龙芯 7A/2K BSP 开发调试 ........................................................................... 9
2.1 地址-3A 7A1000 ................................................................................ 9
2.2 地址-2K1000 ................................................................................... 12
2.3 中断 .................................................................................................. 16
2.3.1 中断控制器驱动移植 ............................................................... 16
2.3.2 vxBus 设备驱动中断 ................................................................. 21
2.3.3 非 vxBus 设备驱动中断 ........................................................... 22
2.3.4 vxWorks 系统中断-3A 7A1000 ................................................. 25
2.3.5 vxWorks 系统中断-2K1000 ...................................................... 37
2.4 驱动设备添加 .................................................................................. 43
2.4.1 DMA 设备驱动添加 .................................................................. 43
2.4.2 串行驱动添加 ........................................................................... 45
2.5 工具 .................................................................................................. 48
2.5.1 Ejtag ............................................................................................ 48
2.5.2 WindDebug(WDB) ..................................................................... 59
2.5.3 Error Detection and Reproting (EDR) ........................................ 74
2.5.4 SPY ............................................................................................. 75
2.5.5
ftpServer 和 ftpcilent 配置及使用 ............................................. 77
2.5.6 常用 Shell 命令 ......................................................................... 80
2.6 常见问题 .......................................................................................... 81
3 资源下载 ...................................................................................................... 87
1 龙芯嵌入式操作系统
1.1 龙芯嵌入式操作系统介绍
风河 vxWorks 操作系统是一种嵌入式实时操作系统,具有高实时性、可裁剪
性、友好的开发调试环境等特点,它以其良好的可靠性和卓越的实时性被广泛地
应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫
星通讯、军事演习、弹道制导、飞机导航等。
在对国产自主可控的嵌入式操作系统支持方面,龙芯公司支持并积极配合国
内自主嵌入式操作系统研制单位做好龙芯 CPU 与自主嵌入式操作系统的适配优
化工作。目前,龙芯平台支持的国产嵌入式操作系统如:锐华系统、道系统、天
脉操作系统、天熠操作系统、中兴嵌入式操作系统、神舟嵌入式操作系统等,支
持 QT、miniGUI、tilcon 等 GUI 开发环境。基于龙芯平台上述嵌入式系统已在工
控、装备等领域得到广泛应用。
龙芯公司向用户提供 vxWorks 6.8 为主的 BSP 开发包,BSP 包主要有龙芯
1A、龙芯 1E+1F 、龙芯 2H 、龙芯 2J/2I+AMD5536 、龙芯 2J/2I+1A 、3A+
AMD780 /2H/7A 和龙芯 2K1000 等。
1.1.1
workbench 开发环境安装
1、安装基础软件,双击风河 workbench 安装软件“setup.exe”。安装过程注意
指向 License 文件。
2、按照风河公司的补丁安装文档,安装必要补丁。
3、绑定 MAC 地址,将 License 文件 Serial Number: ******-************
-**********中间部分号码设置为网卡 MAC 地址。
4、办公需要我们将 MAC 地址设置在一个虚拟网卡里。虚拟网卡安装不再
详细叙述。
1.1.2
vxWorks 系统结构
vxWorks 操作系统主要有 5 个组成部分,包括板级支持包 BSP、Wind 微
内核、网络设备系统、文件系统以及 I/O 系统。vxWorks 的系统架构如图 1-1 所
示:
1
龙芯嵌入式操作系统
图 1-1 vxWorks 的系统架构图
针对 vxWorks 系统架构注释如下:
[1] 板级支持包(BSP,Board Support Package)
在 vxWorks 操作系统中,板级支持包为介于底层硬件环境和 vxWorks 之间
的软件接口,其主要功能是对各种硬件功能提供统一的软件接口,包括硬件的初
始化、中断的产生和处理、硬件时钟和计时器管理、内存地址映射、内存空间大
小、实时内核载入等。
[2] 高性能的实时操作系统内核 。
vxWorks 的核心是高性能的微内核 Wind。它支持实时任务切换、中断、基
于优先级抢占式的任务调度和时间片轮转调度等。Wind 微内核体积小,响应快,
减少了系统开销,从而保证了对外部异步事件的实时、稳定可靠的响应。
[3] 网络设备
网络设备是一类特殊的设备,它通过多层协议与应用程序交换信息。应用程
序采用 Socket 接口作为操作函数集合。
[4] 文件系统
文件系统是操作系统实现的重要组成部分。vxWorks 操作系统支持 dosFs、
rawFs、HRFS 和 ROMFS 等多种文件系统。
[5] I/O 系统
vxWorks 提供的 I/O 系统与 ANSI C 兼容,包括符合 POSIX 标准的异步
2
龙芯中科技术有限公司安全应用事业部
I/O 系统以及 Unix 标准的基本 I/O 系统。I/O 系统提供了与设备无关的用户接
口。
1.1.3
vxWorks 系统启动流程
vxWorks 的启动流程如图 1-2 和图 1-3 所示。
图 1-2 vxWorks 的启动流程
3
龙芯嵌入式操作系统
图 1-3 vxWorks 的启动流程-续
针对启动过程的注释如下:
[1] vxWorks 的入口是 sysALib.s 文件中的 sysInit()函数,该函数由汇编语言
完成,主要完成的工作是初始化 CPU,初始化内存,初始化堆栈,禁止 CPU 的
所有中断,并跳转到 C 函数 usrInit()中。
[2] usrInit()函数对系统进行最小初始化,包括对内核数据结构进行初始化,
以及对系统硬件进行初始化(sysHwInit()函数完成),最后调用 kernelInit()函数。
在 kernelInit()函数中,初始化内存池,启动系统内核,打开系统中断,并且创建
系统的第一个任务,任务的入口函数为 usrRoot()函数,之后系统就运行在多任务
环境下了。
[3] usrRoot()函数主要完成的工作是初始化 MMU、系统时钟等,并且激活各
种内核服务程序。
4
龙芯中科技术有限公司安全应用事业部
[4] sysClkConnect()函数主要作用是连接系统时钟中断服务程序。
[5] sysHwInit2( )函数主要作用是 sysHwInit( )中未完成的板级的初始化。
1.1.4
worbench 目录结构
以 vxWorks 6.8 为例, windRiver workbench 主要的目录文件如表 1-1 所
示 (以下目录都在 installdir/之后):
目录名称
介绍
表 1-1 windRiver 主要目录
components 组件目录(包含图形网络等)
diab
gnu
license
风河的编译器 diab 工具链相关的库
gnu 编译工具链的库 gcc
软件 workbench 安装的时候,根据所用的 license 生成的相关 license
文件目录
vxWorks-6.8 主要的 vxWorks6.8 相关的目录
workbench-3.2 可执行文件所在目录,如下:
workspace
workbench-3.2\wrwb\platform\x86-win32\eclipse\wrwb-x86-win32.exe
工程所在的目录,包括建的工程和新生成的内核二进制
1、components 目录
• components\windml-5.3:windml 图形目录 。
• components\obj windml:编译生成的图形库 。
• components\ip_net2-6.8:ipnet 网络库。
2、vxWorks-6.8 目录
• vxWorks-6.8\target\config:板级支持包 BSP 及其相关配置所在目录。
• vxWorks-6.8\target\config\comps\vxWorks:内核配置的组件对应的 cdf 文
件目录。
• vxWorks-6.8\target\config\lx2g_mipsi64le:板级支持包 BSP 文件目录。
• vxWorks-6.8\target\h:各个驱动相关头文件、数学库头文件所在目录。
• vxWorks-6.8\target\lib\mips:单核 BSP 编译内核镜像时调用的 MIPSI64
库所在的目录。
(龙芯 CPU 是 mips 架构只需关注 mips 文件夹下的文件)。
• vxWorks-6.8\target\lib_smp\mips:多核 BSP 编译内核镜像时调用的
MIPSI64 所在的目录(由于我们的 CPU 是 mips 架构我们只关心 mips 文件夹
下的文件)。
5
龙芯嵌入式操作系统
• vxWorks-6.8\target\src:各个驱动文件、数学库文件所在目录。
3、workbench-3.2
workbench 的可执行文件所在目录,如
workbench-3.2\wrwb\platform\x86-win32\ eclipse\wrwb-x86-win32.exe。
4、workspace
这是新建工程所在的目录,工程配置文件以及内核镜像都在里面。
1.2 龙芯 vxWorks 二维、三维图形
vxWorks 解决方案:针对龙芯 2K1000 和 3A+780/2H/7A 等硬件平台,提供
PMON、以 vxWorks6.8 为主的 BSP 开发包、Qt4.8.7 龙芯优化版、WindML 图
形库以及二维显卡驱动模块等软硬件系统解决方案,支持 AMD HD3000、
HD4690 和 E6465、龙芯 2H/2K/7A 集成显卡等显卡设备,可应用于各类嵌入式
二维图形系统,如图 1-4 所示。
图 1-4 二维显卡驱动模块
图中所示“Xlib 后端”是传统 Linux 下的图形架构,存在系统架构复杂、
软件栈层次过多,影响系统启动速度及文件系统精简性;“直接二维加速后端”
是龙芯公司针对嵌入式平台特点新增加的二维图形加速后端,采用 Qt+直接硬件
加速接口的架构,使得 Qt 可直接使用显卡硬件加速接口,从而精简掉复杂的
XServer 图形架构,同时还可获得显卡硬件加速特性;“FB 后端”即为纯软件的
图形绘制系统后端,没有显卡硬件加速支持;“DirectFB 后端”是传统的以
DirectFB 图形库为核心的图形架构,存在着与 XServer 类似的架构复杂等弊端;
6