RL-ARM是Keil MDK自带的Real-Time Library,其中包括RTX 内核(Real-Time eXecutive,实时操作系统)、RL-FlashFS(文件系统)、RL-TCPnet(TCP/IP协议栈)、RL-CAN(CAN总线函数库)和RL-USB(USB总线函数库)。不过目前好像用的人不多。
1. (2011.12.26 11:17) 移植注意事项
除了按帮助文档说的去做之外,还有以下几点要注意(以STR912FAW4x为例):
(1)需要使能VIC和TIM0的时钟,并且要对硬件进行初始化:
TIM_DeInit(TIM0);
VIC_DeInit();
(2)需要使用μVision4自带的STR91x.s,目前我用的是μVision V4.23.00.0。STR91x.s的目录在Keil\ARM\Startup\ST。
由于使用了原来旧的STR91x.s文件,原来关于内部Flash在线烧写的代码暂时没有包含进去,不知道以后会不会有问题。
(3)需要将STR91x.s的“Setup Library Exception Handlers”选项禁止,即:
LEH_SETUP EQU 0
2. (2011.12.27 8:53) 昨天在RTX上跑MicriumLogo例子时,在画线的时候死机了。后来原因找到,后来在RTX_Conf_STR91x.c中把任务的栈加大就解决了。看来是任务栈溢出造成的。以后有空再优化。
3. (2011.12.17 9:07) 今天运行MicriumLogo时发现,如果任务后面不加while(1)或者os_tsk_delete_self()的话,就死机了。原因待查。
4. isr中断使用问题。是否应该加__irq?中断嵌套或者重入(也是一种嵌套)会不会导致问题?这里http://www.keil.com/forum/11760/有人提出类似疑问,但不是针对RTX的。
5. (2011.12.29 18:36) 发现STR912使用IRQ中断的话,中断函数需要加__irq,如果不加的话,内核会挂掉。
6. 《RL-ARM User's Guide》- FIFO Queue Buffer: 需要的缓存大小,取决于所有IRQ中断函数中调用isr_函数的总数。按照手册的说法,似乎每个isr_函数占用4 entries。而对于不调用isr_的中断函数,不占用该缓存。
7. 今天看到这个帖子http://www.realview.com.cn/support