ReWorks嵌入式应用开发培训讲座BSP开发.ppt

上传人:仙人指路1688 文档编号:2972944 上传时间:2023-03-06 格式:PPT 页数:47 大小:1.63MB
返回 下载 相关 举报
ReWorks嵌入式应用开发培训讲座BSP开发.ppt_第1页
第1页 / 共47页
ReWorks嵌入式应用开发培训讲座BSP开发.ppt_第2页
第2页 / 共47页
ReWorks嵌入式应用开发培训讲座BSP开发.ppt_第3页
第3页 / 共47页
ReWorks嵌入式应用开发培训讲座BSP开发.ppt_第4页
第4页 / 共47页
ReWorks嵌入式应用开发培训讲座BSP开发.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《ReWorks嵌入式应用开发培训讲座BSP开发.ppt》由会员分享,可在线阅读,更多相关《ReWorks嵌入式应用开发培训讲座BSP开发.ppt(47页珍藏版)》请在三一办公上搜索。

1、中国电子科技集团公司第三十二研究所自主可控计算研究院,ReWorks嵌入式应用开发,ReWorks BSP开发,1.ReWorks实时操作系统概述,4.ReWorks BSP实例分析,2,培训大纲,5.ReWorks核心功能介绍,2.ReDe开发环境介绍,3.ReWorks BSP开发,8.ReWorks设备驱动开发,6.ReWorks核心功能实例分析与实验,7.ReWorks扩展功能介绍,9.ReWorks实例分析与实验,3,目录,BSP简介:BSP的定义、功能及开发方式。,ReWorks BSP的结构:BSP的组成结果及模块定义。,1,2,4,ReWorks BSP的集成与测试:详述将Re

2、Works BSP集成到ReDe开发环境中构造应用对BSP测试。,ReWorks BSP的开发:详述X86平台下ReWorks BSP的开发。,3,4,BSP的定义,BSP(Board Support Packet板级支持包)是介于底层硬件和上层软件之间的底层软件开发包,主要功能为屏蔽硬件,提供操作系统的驱动及硬件驱动。,是嵌入式操作系统的一个特有概念。相当PC机中的BIOS+驱动,5,BSP的功能,系统重启(reboot)轮询打印(printk)I/O访问其它自定义接口,BSP的主要功能包括上电时硬件的初始化,为操作系统访问硬件提供接口支持,为应用访问硬件提供接口支持。,中断管理MMU管理系

3、统时钟实时时钟异常处理,初始化,CPU寄存器初始化目标板硬件初始化堆栈初始化,操作系统支持,应用支持,6,BSP在嵌入式系统中的位置,7,BSP开发流程,结合合适的参考BSP或BSP模板代码准备开发调试环境(仿真器、仿真软件)修改编写ReWorks预初始化代码加载串口驱动(为使用串口调试)一旦内核激活后,连接系统中断使能系统时钟配置CACHE&MMU完成BSP需要支持的其他特性测试、文档,8,BSP目标,BSP目标,BSP目标,9,BSP开发方式,在开发系统的最小系统时,通常使用仿真器来开发。常用的仿真器是JTEG仿真器,例如Trace32。,使用仿真器,一般在已经有了成熟模板的情况下,可以使

4、用点灯的方法来调试程序,通过在不同的程序段加入点灯程序,可以观察程序的运行情况。,使用点灯的方法,使用串口轮询输出的方式调试程序,可以观察程序的运行情况。,使用串口轮询打印,方式一,方式二,方式三,在BSP开发较成熟时,可使用串口调试工具,例如ReDe系统调试工具调试。,使用串口交叉调试工具,方式四,10,目录,BSP简介:BSP的定义、功能及开发方式。,ReWorks BSP的结构:BSP的组成结果及模块定义。,1,2,4,ReWorks BSP的集成与测试:详述将ReWorks BSP集成到ReDe开发环境中构造应用对BSP测试。,ReWorks BSP的开发:详述X86平台下ReWork

5、s BSP的开发。,3,11,ReWorks BSP组成结构,ReWorks BSP主要包括,系统引导模块BSP初始化模块可编程中断控制器模块系统时钟模块实时时钟模块MMU和CACHE配置模块其它应用模块(热重启与轮询输出),12,ReWorks BSP模版,BSP的开发模版,ReWorks BSP定义了开发模版,需实现如下七个接口,BSP初始化接口可编程中断控制器模块接口系统时钟模块接口MMU和CACHE配置模块接口实时时钟模块接口轮询打印接口热重启接口,13,ReWorks BSP模版,void bsp_module_init(void);,BSP初始化入口在ReWorks核心启动入口c_

6、main中调用。BSP初始化入口主要完成了基本硬件的初始化、注册目标板中断数量、初始化轮询打印模块等。,接口语法,接口说明,BSP初始化接口,14,ReWorks BSP模版,int pic_hw_init(void);int pic_int_ack(int interrupt_pending);int pic_int_enable(u32 irq);int pic_int_disable(u32 irq);,可编程中断控制器接口操作包括两部分接口:硬件初始化接口和中断操作接口;硬件初始化接口在BSP初始化接口的硬件初始化接口中调用;中断操作接口在CSP中断模块中对中断进行处理时调用。与可编程

7、中断控制器硬件交互,向ReWorks中断框架提供中断响应、中断使能和中断屏蔽等主要操作。,接口语法,接口说明,可编程中断控制器模块接口,15,ReWorks BSP模版,int clock_module_init(void);void arch_clock_start(void);int arch_clock_ack(void);void arch_clock_off(void);u32 arch_clock_rate_set(int ticks_per_second);,系统时钟模块为ReWorks所必需的模块;该模块主要实现时钟中断功能。系统时钟模块在ReWorks核心初始化过程中调用。时

8、钟模块操作接口对可编程定时器进行操作。时钟模块接口分为两部分:时钟初始化接口和时钟操作接口。时钟初始化接口clock_module_init在ReWorks启动函数c_main中调用;时钟模块操作接口主要包括:时钟启动接口、时钟中断响应接口、时钟速率设置接口等。,接口语法,接口说明,系统时钟模块接口,16,ReWorks BSP模版,void mmu_config(void);void cache_module_init(CACHE_MODE inst,CACHE_MODE data);void cache_enable(CACHE_TYPE cache);void cache_disable

9、(CACHE_TYPE cache);,MMU配置模块用于完成系统内存配置。MMU模块通过调用ReWorks的MMU配置项增加接口mmu_config_item_add完成。MMU配置接口在ReDe集成开发环境勾选MMU模块后调用。CACHE配置模块用于完成系统高速缓存配置。CACHE配置接口在ReDe集成开发环境勾选MMU模块后调用。,接口语法,接口说明,MMU配置模块接口,17,ReWorks BSP模版,void rtc_module_init(void);int rtc_read(struct tm*the_tm);int rtc_write(struct tm*the_tm);,实时

10、时钟一般作为单独的ReDe集成开发环境“资源组件”的形式发布,由用户通过“勾选”该“资源组件”将实时时钟添加至ReWorks中。实时时钟操作接口主要包括两个部分:实时时钟模块初始化接口和实时时钟读写操作接口。,接口语法,接口说明,实时时钟模块接口,18,ReWorks BSP模版,void printk_debug_outchar(char c);void printk_debug_hw_init(void);,printk调试输出模块主要包括两个接口:字符输出接口和硬件初始化接口;硬件初始化接口printk_debug_hw_init统一在BSP模块初始化接口bsp_module_init中

11、调用完成初始化字符输出接口printk_debug_outchar在BSP模块初始化接口中通过printk_init接口注册到printk模块。编程人员通过printk输出打印信息时,调用该字符输出接口进行字符输出。,接口语法,接口说明,轮询打印接口,19,ReWorks BSP模版,void reboot(void);,reboot接口的实现与处理器体系结构相关。reboot重启动接口用于重新启动系统,即完成软硬件的复位操作,接口语法,接口说明,热重启接口,20,ReWorks启动流程,ReWorks嵌入式实时操作系统的入口为start.s中的函数start启动后,完成操作系统运行环境初始化

12、、驱动初始化,最后执行用户代码的一系列流程。单任务环境和多任务环境的启动过程均在ReWorks内核入口函数c_main中完成。BSP初始化模块调用BSP初始化入口bsp_module_init完成基本硬件初始化、设置目标板中断数量、初始化轮询打印模块中断模块初始化和时钟模块初始化在CSP中完成,其具体与可编程中断控制器PIC和时钟硬件操作均在BSP中实现系统配置和用户配置为与ReWorks配套的集成开发环境ReDe通过勾选资源组件而自动生成的。,21,ReWorks启动流程-启动流程图,22,目录,BSP简介:BSP的定义、功能及开发方式。,ReWorks BSP的结构:BSP的组成结果及模块

13、定义。,1,2,4,ReWorks BSP的集成与测试:详述将ReWorks BSP集成到ReDe开发环境中构造应用对BSP测试。,ReWorks BSP的开发:详述X86平台下ReWorks BSP的开发。,3,23,x86 BSP开发过程,选择合适的参考BSP或BSP模版代码,并创建BSP库工程编写start.s的预初始化代码,并测试功能编写printk调试输出模块代码,并测试功能编写中断控制器模块代码,并测试功能编写系统时钟模块代码,并测试功能 编写MMU和CACHE配置模块代码,并测试功能完成BSP需要支持的其他特性,例如实时时钟和热重启功能。集成测试与文档,24,x86 BSP基本文

14、件构成,X86 BSP所需的基本文件构成:,25,创建x86 BSP库工程,选择ReDe-文件-导入-常规-现有项目到工作空间中,选定BSP库工程模版的路径,将BSP库工程模版导入到ReDe工程中去,导入x86 BSP模版,26,开发x86 BSP库工程,导入库工程后,在ReDe工程中开发目标板的BSP库工程,开发完成后,编译生成BSP库文件(libpentium.a)将库文件拷贝到ReDe指定目录中去(user resourcepentium_configruntimelibPENTIUMliblibpentium.a),创建库工程,x86 BSP代码实现步骤,编写start.s编写调试输出

15、模块编写中断控制器模块编写系统时钟模块定制MMU配置模块完成BSP需要支持的其他特性,27,28,一、编写start.s,ReWorks预处理的汇编代码在文件start.s中,入口函数为start,汇编代码执行完成后,跳转至ReWorks核心。编写start.s顺序完成如下三部分:处理器寄存器的初始化系统堆栈的初始化CACHE和MMU的初始化测试验证方法:测试系统是否能顺序执行到c_main中,可使用点灯法或JTEG仿真器进行跟踪,29,二、编写调试输出模块,ReWorks调试输出模块的代码在文件printk_debug.c中。调试输出的终端可以是串口或显示器。调试输出接口printk是BSP

16、调试的一个重要方法。编写调试输出模块代码的步骤如下实现printk_debug_hw_init接口,该接口对轮询输出设备硬件初始化实现printk_debug_outchar接口,该接口为字符打印接口,用于向终端输出一个字符,30,二、编写调试输出模块(续),测试验证方法:编写printk接口的应用测试程序,如printk(“字符串n”);测试printk对应的终端是否有正确的输出。,31,三、编写中断控制器模块,可编程中断控制器模块的代码在文件pic.c中。编写中断控制器模块的步骤如下实现接口pic_hw_init,该接口完成中断控制器的初始化。实现接口pic_int_ack,该接口实现中断

17、响应操作,读中断响应寄存器,然后返回当前挂起的最高优先级中断向量号。,32,三、编写中断控制器模块(续),实现接口pic_int_enable,该接口执行中断控制器的使能操作。实现接口pic_int_disable,该接口执行中断控制器的屏蔽操作。测试验证方法:中断控制器模块功能可以通过系统时钟模块来测试,即在时钟中断处理函数中添加printk打印信息,看时钟中断是否能响应成功,使能和屏蔽操作能否成功。,33,四、编写系统时钟模块,系统时钟模块的代码在文件clock.c中。编写系统时钟模块的步骤如下:实现接口clock_module_init,该接口完成时钟的初始化。实现接口arch_cloc

18、k_start,该接口用于启动时钟,即设置时钟下降计数。实现接口arch_clock_ack,该接口用于响应时钟中断。在中断处理框架中调用,即如果当前产生的是时钟中断则调用本程序予以响应。,34,四、编写系统时钟模块(续),实现接口arch_clock_off,该接口用于关闭时钟,本程序在clock_off()程序中调用。实现接口arch_clock_rate_set,用于根据时钟滴答数重新设置时钟频率。该接口在应用 程序重新设置系统时钟速率接口sys_clk_rate_set()中调用。测试验证方法:创建一个应用测试程序,使用sleep接口,观察延时是否与真实环境相同,35,五、定制MMU配

19、置模块,MMU和CACHE的配置模块的代码在文件mmu_config.c中。编写MMU配置模块如下实现接口mmu_config,该接口功能为配置MMU。实现接口cache_module_init,该接口功能为CACHE模块初始化。实现接口cache_enable,该接口功能为CACHE的使能操作。实现接口cache_disable,该接口功能为CACHE的屏蔽操作。,五、定制MMU配置模块(续),测试验证方法:通过mmu_config_item_add 配置一块内存区域,测试是否能正常访问,编写应用程序对该端内存区域进行数据读写操作,比较使能与屏蔽该段内存区域的CACHE配置前后,读写操作的时

20、间差别。,36,37,六、完成BSP需要支持的其他特性,BSP还需要实现热重启,实时时钟等其他功能。热重启模块的代码在模版文件reboot.c中,实时时钟的代码在模版文件rtc中。,38,目录,BSP简介:BSP的定义、功能及开发方式。,ReWorks BSP的结构:BSP的组成结果及模块定义。,1,2,4,ReWorks BSP的集成与测试:详述将ReWorks BSP集成到ReDe开发环境中构造应用对BSP测试。,ReWorks BSP的开发:详述X86平台下ReWorks BSP的开发。,3,39,ReWorks BSP集成,将ReWorks BSP集成到ReDe IDE开发环境中需要定

21、制BSP资源组件工程与目标板资源工程。BSP资源组件工程使用BSP资源组件工程模版,在ReDe中导入BSP资源组件工程模版,定制BSP资源组件工程.目标板资源工程使用目标板资源工程模版,在ReDe中导入目标板资源工程,定制目标板资源工程.,40,ReWorks BSP集成-BSP资源组件工程,选择ReDe-文件-导入-资源管理-资源组件,输入资源组件工程项目名,点“下一步”,选定资源组件模版,点“完成”,将BSP资源组件工程导入到ReDe工程中去,41,ReWorks BSP集成-BSP资源组件工程,双击资源组件工程中的人rcpcfg文件,配置BSP模块。配置完成后右键单击rcpcfg文件,提

22、交资源组件至资源库,42,ReWorks BSP集成-目标板资源工程,选择ReDe-文件-导入-资源管理-目标板资源,输入目标板资源工程项目名,点“下一步”,选定目标板资源模版,点“完成”,将目标板资源工程导入到ReDe工程中去,43,ReWorks BSP集成-目标板资源工程,双击目标板资源工程中的rcpcfg文件,配置目标板资源。配置完成后右键单击rcpcfg文件,提交目标板资源至资源库,44,ReWorks BSP的测试,选择ReDe-文件-新建-自引导工程,输入项目名,点“下一步”,选择配置工具链,点“下一步”。,45,ReWorks BSP的测试,选着目标板资源配置,点“完成”,生成一个自引导工程。,46,ReWorks BSP的测试,双击打开自引导工程中资源配置的syscfg文件,定制系统配置信息,完成后编译生成reworks.bin,下载到目标板中即可测试ReWorks BSP的功能。,47,Thank You!,单位:中国电子科技集团第三十二研究所 自主可控计算研究院地址:上海市徐汇区桂林路418号 邮编:200233电话:021-64704678-7512,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号