移植好的IAR520_STM32_uCOS-II V2.86代码

,等版主加

IAR_STM32_uCOS-II V2.86.rar (1.98 MB)
2

评分人数

  • aleyn

  • jasonjee

番茄

下载来看看那  谢谢 tomato 的分享
也准备搞一下ucos呢  呵呵
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

问一下 一个电脑上 能 同时装 IAR442  和 IAR520 么??????

看了一下楼主的共享 工程共啥的都有 呵呵
不过还没用过 IAR520 电脑上也没装 暂时玩不了 呵呵
所以 打算把520也装上 嘿嘿
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

我电脑上装了3个版本的IAR ARM, IARARM4.42KS-32K,IARARM4.42-EVL,IARARM5.20-EVL

他们互不影响,都很好用

IARARM5.20 在C编译器处理方式上做了改进,是为了和GCC和 RealView 接轨,把参数传递和数据段处理做了改进,更简单明白了,,这是为了在GCC和 RealView 下可以互相移植

而IARARM4.42编译器好像是IAR独特的处理方式,与5.0以上的编译器项目不兼容,而且不可以自动转换
番茄

TOP

哦 好的 娃哈哈哈
谢谢 Tomato  
那我下午把520给装了 呵呵
在STM32上跑ucos 应该很爽 呵呵
不过还没玩过呢
不懂的地方 还望 Tomato  多多指教哈
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

加分!加分!

谢谢 番茄!

TOP

很不错,顶一下

TOP

支持移值,还有,能不能请 番茄 加上简单的说明? 谢谢

TOP

好呀!希望楼主写写心得

TOP

本想好好写写,可是又不知道写什么,因为确实不难,写多了也是啰嗦基础东西,但是书上比我讲的清楚多了

其实移植uCOS很简单,就是改动改动OS_CPU_A.ASM和中断

OS_CPU_A.ASM我已经注释很清楚了,不理解和不懂的可以和我交流,我就是番茄

向量表就动了2行,14,15号中断
  SVCHandler,                               // 11
  DebugMonitor,                             // 12
  0,                                        // 13 保留
  OS_CPU_PendSVHandler,                     // 14 PendSV 用于系统调度
  OS_CPU_SysTickHandler,                    // 15 系统Tick
  WWDG_IRQHandler,                          // 16
  PVD_IRQHandler,                           // 17
  TAMPER_IRQHandler,                        // 18

OS_CPU_PendSVHandler是汇编的,在OS_CPU_A.ASM里面

Tick处理也就几句话。。。

void  OS_CPU_SysTickHandler (void)
{
    OS_CPU_SR  cpu_sr;


    OS_ENTER_CRITICAL();
    OSIntNesting++;
    OS_EXIT_CRITICAL();

    OSTimeTick();

    OSIntExit();
}
其实也没什么的,不理解和不懂就问我吧,那样我反而知道怎么讲了重点了
番茄

TOP

代码可以跑  呵呵 里面的四个闪烁LED的进程也跑起来了
不过我的灯还没亮 不知道楼主的灯亮起来了没
呵呵 没搞过ucos  见笑了
未命名.jpg
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

原帖由 Tomato 于 2008-11-18 15:41 发表
本想好好写写,可是又不知道写什么,因为确实不难,写多了也是啰嗦基础东西,但是书上比我讲的清楚多了

其实移植uCOS很简单,就是改动改动OS_CPU_A.ASM和中断

OS_CPU_A.ASM我已经注释很清楚了,不理解和不懂的可以和我交流,我就 ...



呵呵 先谢谢了

我在APP_TaskStart修改了时钟设置

        // 打开控制端口时钟   
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOD, &GPIO_InitStructure);

然后 每个点LED灯的程序也修改了的

static void Task1_LED1(void *pdata)
{
    pdata = pdata;
    while(1)
    {
        GPIO_ResetBits(GPIOD, GPIO_Pin_2);
        OSTimeDly(OS_TICKS_PER_SEC * 2);
        GPIO_SetBits(GPIOD, GPIO_Pin_2);
        OSTimeDly(OS_TICKS_PER_SEC * 2);
    }
}

调试也运行到进程里面了 就是不亮 是不是哪里的时钟初始化没搞对啊 呵呵 谢谢Tomato 指教
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

首先看看任务是不是被切换过
List.JPG
2008-11-18 17:56


如果任务被切换过,说明只是硬件LED驱动问题
番茄

TOP

好的 我现在就跑一段时间看看
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

搞定了  四个LED啊 一闪一闪亮晶晶啊
呵呵 谢谢番茄大哥的指导教诲
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

恭喜恭喜

请问原来是什么原因引起任务没跑起来导致LED没闪呀闪的?

TOP

我也想知道,原来为什么不闪动
番茄

TOP

原帖由 Tomato 于 2008-11-19 00:11 发表
我也想知道,原来为什么不闪动



呵呵 不是代码的问题 是JLINK的问题 我没设置好JLINK  造成JLink在调试的时候一死一活的
单步调试一下 就要N秒钟 估计是这个因素 导致STM32系统的时钟出错 所以 代码执行也有问题了
估计的 呵呵
我有一個夢想 擁有一大片土地 做個小地主 每天帶著一群狗奴才去調戲良家婦女....

TOP

不错

要多看些!

TOP

不错,要多看些,多学习些!

TOP

请问楼主,这个移植程序你现在在使用吗?

TOP

好资料,一定要顶了!

TOP

下载来看看那  谢谢 tomato 的分享

TOP

搬来板凳聆听!

TOP

很好啊!

TOP

还需要继续努力啊!

TOP

请问,520和420的移植文件一样吗?

TOP

good!
字数字数字数字数!

TOP

现在积分不够,下不了。

TOP

赚分下载,谢谢了,,

TOP

Review opelc.org on alexa.com