主题 : 基于MDK的ucos,由友善之臂的例子移植过来 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 11832
精华: 0
发帖: 37
金钱: 185 两
威望: 37 点
贡献值: 0 点
综合积分: 74 分
注册时间: 2009-12-22
最后登录: 2017-03-13
楼主  发表于: 2009-12-27 11:08

 基于MDK的ucos,由友善之臂的例子移植过来

管理提醒: 本帖被 qq2440 从 Linux技术交流专区 移动到本区(2009-12-27)
将友善之臂的代码UCOS2基于ADS平台移植到 MDK平台
原先代码使用mmu 不知道为什么 在mdk+jlink使用mmu老是跑飞,
所以这个代码没有使用mmu,ucos的汇编代码完全采用原先的代码 没有进行修改
主要改了启动代码,指明了中断的跳转,
通过调试 知道友善之臂的默认bootloader的中断跳转是跳向 0x33F00000
例如 IRQ中断 地址 是 0x00000018   那么bootloader会跳向 0x33F00000+0x00000018
下面是中断拷贝程序 IRAM_BASE  等于 0x33F00000
                IF      :DEF:RAM_INTVEC
                ADR     R8,  Vectors    ; Source
                LDR     R9, =IRAM_BASE  ; Destination
                LDMIA   R8!, {R0-R7}    ; Load Vectors
                STMIA   R9!, {R0-R7}    ; Store Vectors
                LDMIA   R8!, {R0-R7}    ; Load Handler Addresses
                STMIA   R9!, {R0-R7}    ; Store Handler Addresses
                ENDIF


在c中 要设置 IRQ的处理程序
#define _ISR_STARTADDRESS     0x33F00020
#define pISR_IRQ        (*(unsigned *)(_ISR_STARTADDRESS+0x18))


    pISR_IRQ=(INT32U)OS_CPU_IRQ_ISR;


                            镇关西(QQ:191635418)
                                09/12/27
附件: 基于mdk的ucos使用友善的boot.rar (348 K) 下载次数:1294
ucos 播放视频 TCPIP 都不会 呵呵
级别: 侠客
UID: 28089
精华: 0
发帖: 64
金钱: 320 两
威望: 64 点
贡献值: 0 点
综合积分: 128 分
注册时间: 2010-09-05
最后登录: 2019-05-16
1楼  发表于: 2014-01-05 20:36
很好,学习中