欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

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

    • 资源ID:2972944       资源大小:1.63MB        全文页数:47页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    中国电子科技集团公司第三十二研究所自主可控计算研究院,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的集成与测试:详述将ReWorks 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管理系统时钟实时时钟异常处理,初始化,CPU寄存器初始化目标板硬件初始化堆栈初始化,操作系统支持,应用支持,6,BSP在嵌入式系统中的位置,7,BSP开发流程,结合合适的参考BSP或BSP模板代码准备开发调试环境(仿真器、仿真软件)修改编写ReWorks预初始化代码加载串口驱动(为使用串口调试)一旦内核激活后,连接系统中断使能系统时钟配置CACHE&MMU完成BSP需要支持的其他特性测试、文档,8,BSP目标,BSP目标,BSP目标,9,BSP开发方式,在开发系统的最小系统时,通常使用仿真器来开发。常用的仿真器是JTEG仿真器,例如Trace32。,使用仿真器,一般在已经有了成熟模板的情况下,可以使用点灯的方法来调试程序,通过在不同的程序段加入点灯程序,可以观察程序的运行情况。,使用点灯的方法,使用串口轮询输出的方式调试程序,可以观察程序的运行情况。,使用串口轮询打印,方式一,方式二,方式三,在BSP开发较成熟时,可使用串口调试工具,例如ReDe系统调试工具调试。,使用串口交叉调试工具,方式四,10,目录,BSP简介:BSP的定义、功能及开发方式。,ReWorks BSP的结构:BSP的组成结果及模块定义。,1,2,4,ReWorks BSP的集成与测试:详述将ReWorks BSP集成到ReDe开发环境中构造应用对BSP测试。,ReWorks BSP的开发:详述X86平台下ReWorks 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_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中断模块中对中断进行处理时调用。与可编程中断控制器硬件交互,向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核心初始化过程中调用。时钟模块操作接口对可编程定时器进行操作。时钟模块接口分为两部分:时钟初始化接口和时钟操作接口。时钟初始化接口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(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);,实时时钟一般作为单独的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中调用完成初始化字符输出接口printk_debug_outchar在BSP模块初始化接口中通过printk_init接口注册到printk模块。编程人员通过printk输出打印信息时,调用该字符输出接口进行字符输出。,接口语法,接口说明,轮询打印接口,19,ReWorks BSP模版,void reboot(void);,reboot接口的实现与处理器体系结构相关。reboot重启动接口用于重新启动系统,即完成软硬件的复位操作,接口语法,接口说明,热重启接口,20,ReWorks启动流程,ReWorks嵌入式实时操作系统的入口为start.s中的函数start启动后,完成操作系统运行环境初始化、驱动初始化,最后执行用户代码的一系列流程。单任务环境和多任务环境的启动过程均在ReWorks内核入口函数c_main中完成。BSP初始化模块调用BSP初始化入口bsp_module_init完成基本硬件初始化、设置目标板中断数量、初始化轮询打印模块中断模块初始化和时钟模块初始化在CSP中完成,其具体与可编程中断控制器PIC和时钟硬件操作均在BSP中实现系统配置和用户配置为与ReWorks配套的集成开发环境ReDe通过勾选资源组件而自动生成的。,21,ReWorks启动流程-启动流程图,22,目录,BSP简介:BSP的定义、功能及开发方式。,ReWorks BSP的结构:BSP的组成结果及模块定义。,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基本文件构成,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编写调试输出模块编写中断控制器模块编写系统时钟模块定制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调试的一个重要方法。编写调试输出模块代码的步骤如下实现printk_debug_hw_init接口,该接口对轮询输出设备硬件初始化实现printk_debug_outchar接口,该接口为字符打印接口,用于向终端输出一个字符,30,二、编写调试输出模块(续),测试验证方法:编写printk接口的应用测试程序,如printk(“字符串n”);测试printk对应的终端是否有正确的输出。,31,三、编写中断控制器模块,可编程中断控制器模块的代码在文件pic.c中。编写中断控制器模块的步骤如下实现接口pic_hw_init,该接口完成中断控制器的初始化。实现接口pic_int_ack,该接口实现中断响应操作,读中断响应寄存器,然后返回当前挂起的最高优先级中断向量号。,32,三、编写中断控制器模块(续),实现接口pic_int_enable,该接口执行中断控制器的使能操作。实现接口pic_int_disable,该接口执行中断控制器的屏蔽操作。测试验证方法:中断控制器模块功能可以通过系统时钟模块来测试,即在时钟中断处理函数中添加printk打印信息,看时钟中断是否能响应成功,使能和屏蔽操作能否成功。,33,四、编写系统时钟模块,系统时钟模块的代码在文件clock.c中。编写系统时钟模块的步骤如下:实现接口clock_module_init,该接口完成时钟的初始化。实现接口arch_clock_start,该接口用于启动时钟,即设置时钟下降计数。实现接口arch_clock_ack,该接口用于响应时钟中断。在中断处理框架中调用,即如果当前产生的是时钟中断则调用本程序予以响应。,34,四、编写系统时钟模块(续),实现接口arch_clock_off,该接口用于关闭时钟,本程序在clock_off()程序中调用。实现接口arch_clock_rate_set,用于根据时钟滴答数重新设置时钟频率。该接口在应用 程序重新设置系统时钟速率接口sys_clk_rate_set()中调用。测试验证方法:创建一个应用测试程序,使用sleep接口,观察延时是否与真实环境相同,35,五、定制MMU配置模块,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配置前后,读写操作的时间差别。,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开发环境中需要定制BSP资源组件工程与目标板资源工程。BSP资源组件工程使用BSP资源组件工程模版,在ReDe中导入BSP资源组件工程模版,定制BSP资源组件工程.目标板资源工程使用目标板资源工程模版,在ReDe中导入目标板资源工程,定制目标板资源工程.,40,ReWorks BSP集成-BSP资源组件工程,选择ReDe-文件-导入-资源管理-资源组件,输入资源组件工程项目名,点“下一步”,选定资源组件模版,点“完成”,将BSP资源组件工程导入到ReDe工程中去,41,ReWorks BSP集成-BSP资源组件工程,双击资源组件工程中的人rcpcfg文件,配置BSP模块。配置完成后右键单击rcpcfg文件,提交资源组件至资源库,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,

    注意事项

    本文(ReWorks嵌入式应用开发培训讲座BSP开发.ppt)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开