基于SF-NIOS2开发板的uC/OS-II应用实例
uC/OS-II(又名Micro C/OS)是基于嵌入式系统的完整的,可移植、可固化、可裁剪的可剥夺型实时内核,其已经广泛应用在航空飞行器、医疗设备、工业控制等可靠性和稳定性要求较高的场合。该内核的代码也是完全开源的,如果不做商业用途,完全免费。因此对于广大的嵌入式爱好者与工程师们而言,了解OS从uC/OS-II开始不失为一个很好的选择。
特权同学最近在一边狂啃邵贝贝翻译的《嵌入式实时操作系统uC/OS-II》,一边动手在NIOS II上做一些实践,加深理解和认识。
拿来自己设计的SF-NIOS2开发套件,使用第3个工程实例(《爱上FPGA开发》第6章的SOPC工程)进行了EDS上的uC/OS-II样板工程测试,对uC/OS-II有一个更感性的认识和体验。废话少说,简单的描述下整个实例过程,也算给手头拥有SF-NIOS2套件的朋友一个参考吧。
SOPC硬件修改
第3个SOPC工程硬件框图如图1所示。在此基础上,咱们需要添加一个10ms定时器,用于作为uC/OS-II的时钟节拍(Clock tick)。
图1
首先复制第3个工程实例,修改工程文件夹名为nios2ucosii,接着打开工程的SOPC Builder编辑界面,添加一个Interval Timer外设,设置该Timer的定时Period为10ms,如图2所示。
图2
修改该Timer外设名称为ucosii_timer。
图3
重新分配地址,如图4所示,点击SystemàAssign Base Addresses。接着点击右下角的Generate生成新的系统。
图4
完成SOPC新系统的Generate,接着重新编译Quartus II的project。自此,硬件的修改已经就绪。
软件工程创建
如图5所示,打开EDS后,点击FileàNewàNios II Application and BSP from Template新建模板工程。
图5
如图6所示,在新建工程向导中,选择SOPC Information File name为当前工程目录下的sopcinfo文件。Project name命名为myucosii_prj,选择Project template为Hello MicroC/OS II。最后点击Finish创建工程。
图6
新建工程出现在工程管理窗口后,右键单击myucosii_prj文件夹,选择NIOS IIàBSP Editor,如图7所示。
图7
确定Main页面中Common里面的stderr/stdin/stdout均为jtag_uart,sys_clk_timer为ucosii_timer即可。点击Generate更新设置。
图8
右键点击应用工程,选择Build Project进行软件工程编译。完成后Console窗口打印如图9所示的信息,可见这个uC/OS-II内核以及软件的HAL占用了大约101KB的存储空间,uC/OS-II其实还是很小的,只不过NIOS II各种外设的HAL比较大,不过也都是可以裁剪的。
图9
SF-NIOS2开发套件介绍:http://item.taobao.com/item.htm?id=15262961938
文章评论(0条评论)
登录后参与讨论