SOC系统任务调度

         片上系统涉及多核编程和任务调度,任务调度由主控处理器完成,分任务由各个负责的处理器完成。由于没有操作系统管理,没有动态库可用,所以进程进入main函数之前的初始化环境部分需要自己操作。即boot程序。

         主控处理器的boot程序主要完成处理器环境的设置,包括ICACHE和DCACHE(哈佛结构的高速缓存)是否打开,IMMU和DMMU(操作系统下的虚拟地址支持部件,完成虚拟地址和物理地址的转换)是否打开,配置中断使能;所有寄存器清0,加载程序到偏上memory(类似于将程序装载到内存);然后进入main函数开始程序的执行。

         主控处理器主要完成任务调度,所以没有具体的实际功能,所以在main函数中,首先初始化整个SOC的环境,包括向其他核运送程序、参数、数据等其他核执行任务所需要的资源并启动其他核,包括初始化SOC中硬件加速器的配置。其次,注册中断向量表,主要是一些中断函数的指针,注册之后才能正确的相应中断,执行定义的中断服务程序。最后,初始化主控处理器需要的一些参数,然后进入死循环,等待中断信号的到来做相应的处理。

        主控处理器的任务调度主要是由中断服务程序制定的,所以主控处理器的中断机制非常重要。

        每一款支持中断的处理器都有几个特殊的逻辑地址用来相应中断和异常,如果对异常不做任何处理,则将其死循环即可,中断产生时需要我们进行处理,一般都会跳转到中断程序的入口地址处(当前地址是中断向量入口地址的地址,执行一条跳转指令,进入到中断向量区。关于为什么跳转?这是因为中断的特殊地址处保留的地址区域比较小&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值