我现在在做ARM LPC2104的移植,参考了一些周立功的移植经验,看来还需要很长一段时间才可以,软中断有人用过没有,我想问问这方面的问题,谢谢
热心网友
你不会是北京小赵吧?今天下午刚刚在群里遇到他问软中断的问题。在2104上面移植ucos,首先要把arm启动和ucos的移植分开作为两个问题来处理。启动是芯片的配置引导,ucos的移植是针对内核的任务切换机制和针对芯片的一个硬件定时器调用。ucos的启动是建立在芯片的启动基础上,在芯片boot成功以后再初始化ucos系统(调用系统函数即可)。针对内核的任务切换要多看arm内核的知识,要了解编译器处理细节,要仔细研究ucos的移植范例,再加上一定程度的测试,arm汇编是肯定要很熟悉的。针对芯片的硬件定时器调用就很简单了,只要对2104有一定了解就可以。zlg的书上给的ucos移植例子不是很符合ucos系统的移植范例,修改了一些原系统要求的步骤(我只是在书店浏览过,感觉如此),所以最好还是看看ucos网站上对arm7tdmi内核移植的port文件。软中断是arm里面主要作为提供给调试使用的一种方式,其中使用最多的又是semihosting中断。软中断通过汇编指令swi来触发,其后跟随一个参数为swi中断号,通过swi方式,运行在用户模式下的应用程序可以请求操作系统执行一系列特权操作(supervisor也是特权模式)。而其中的semihosting中断可以在用户程序与调试环境间建立一个联系,从而可以通过用户程序操作文件IO之类。
热心网友
我刚开始,来学习了