UCOS移植第一篇:os_cpu.c


        移植ucos到一个陌生的平台,需要做不少工作,熟悉cpu结构和其所用的编译器是基本工作,初步完成认识这些工作后,就可以对移植ucos所需的函数进行修改编写了;

       所选择的平台为开源处理器or1200,硬件平台使用FPGA开发板,具体关于OR1200处理器,可参考openrisc官网;

       在os_cpu.c中,主要完成了“使能中断”,“去使能中断”,“堆栈初始化”和“钩子函数”的编写操作;

       “使能中断”,“去使能中断”分别使能和关闭系统的中断功能,以便使得处理器进入OS所需要的“临界区”,完成相应的不可打断的操作;

       “堆栈初始化”是在任务进行创建时对任务首次进入到CPU中进行运行的环境进行初始化,通用寄存器大部分设置为0,对任务指针进行赋值,并对状态寄存器进行赋值;当然这些值都是放在当前任务的堆栈中,当进行任务调度运行时,从堆栈中读出这些初始值,完成整个cpu的GPR和SPR的赋值;

       “钩子函数”,在OS中有很多不推荐进行修改的文件和函数,但是如果确实需要在那些函数中插入自己的用户代码,就需要“钩子函数”了,钩子函数的命名是固定的,并且在相关的函数中已经发生了调用(需要打开宏),当需要掺入代码时,我们就在相应的钩子函数中写入自己的代码,并打开相关的宏即可;

        这个文件主要完成移植所需的c文件书写,最重要的要数堆栈初始化函数了,需要好好理解;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值