2 RX850内核配置
由于RX850已经被嵌入到IDE,因此用户直接编写内核脚本文件即可,下面介绍如何来配置内核。
1.系统时钟设置
clkhdr INTTM0EQ0 //选定TimerM为时间片中断源
2.堆栈设置
RX850的堆栈分为系统堆栈和任务堆栈,
POOL0功能: 系统基本表信息、准备队列、每个管理块、任务堆栈、中断句柄堆栈(系统堆栈)、可变长度内存、不变长度内存。
POOL1功能: 任务堆栈、中断句柄堆栈(系统堆栈)、可变长度内存、不变长度内存。
POOL0和POOL1都可以作为任务堆栈,即使没有POOL1也可以。配置如下:
intstk 0x400: pool0 //系统堆栈大小为0x400
tsk TSK1 _TSK1 0x050 : pool1 0x06 TTS_DMT 0x00 ei // TSK_ID_1ms任务堆栈大小0x50
3.允许最大优先级任务数
maxpri 0x1f //允许最大优先级任务数为0x1f
4. 信号量设置
sem Sem_Task1 0x00 //设置了信号量Sem_Task1为0
sem Sem_Task2 0x00//设置了信号量Sem_Task2为0
5.事件标志设置
flg flg_Task1 //设置了事件标志flg_Task1
flg flg_Task2 //设置了事件标志flg_Task2
5.邮箱设置
mbx ID_Task1 TA_MPRI //设置Task1的邮箱
mbx ID_Task2 TA_MPRI //设置Task2的邮箱
6.中断设置
RX850的中断分为直接中断和间接中断两种,直接中断不受RX850制约的中断句柄,理论上接近硬件中断的速度,其缺点是需要用户自己写中断处理句柄,包括:(1). 寄存器压栈;(2). 换向,跳转到中断句柄的开始;(3). 调用系统命令;(4). 返回到调度;间接中断的中断句柄在RX850的中断预处理后才被启动,优点是简化了句柄处理过程,缺点是由于RX850的预处理降低了速度,其处理过程如下:
图1 直接中断调度图
间接中断配置如下:
inthdr INTAD _AD_Interrupt //AD间接中断句柄配置
inthdr INTC1REC _CAN_Ch1RxInt //CAN间接中断句柄配置
图2 间接中断调度图