发布: 2008-11-17 11:18 | 作者: Tomato | 来源: StmFans思蜕盟 OPELC 自由电子联盟
IAR_STM32_uCOS-II V2.86.rar(2008-11-17 11:22:13, Size: 1.98 MB, Downloads: 1013)
未命名.jpg
QUOTE:
原帖由 Tomato 于 2008-11-18 15:41 发表 本想好好写写,可是又不知道写什么,因为确实不难,写多了也是啰嗦基础东西,但是书上比我讲的清楚多了 其实移植uCOS很简单,就是改动改动OS_CPU_A.ASM和中断 OS_CPU_A.ASM我已经注释很清楚了,不理解和不懂的可以和我交流,我就 ...
List.JPG
原帖由 Tomato 于 2008-11-19 00:11 发表 我也想知道,原来为什么不闪动
也准备搞一下ucos呢 呵呵
看了一下楼主的共享 工程共啥的都有 呵呵
不过还没用过 IAR520 电脑上也没装 暂时玩不了 呵呵
所以 打算把520也装上 嘿嘿
他们互不影响,都很好用
IARARM5.20 在C编译器处理方式上做了改进,是为了和GCC和 RealView 接轨,把参数传递和数据段处理做了改进,更简单明白了,,这是为了在GCC和 RealView 下可以互相移植
而IARARM4.42编译器好像是IAR独特的处理方式,与5.0以上的编译器项目不兼容,而且不可以自动转换
谢谢 Tomato
那我下午把520给装了 呵呵
在STM32上跑ucos 应该很爽 呵呵
不过还没玩过呢
不懂的地方 还望 Tomato 多多指教哈
谢谢 番茄!
其实移植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();
}
其实也没什么的,不理解和不懂就问我吧,那样我反而知道怎么讲了重点了
不过我的灯还没亮 不知道楼主的灯亮起来了没
呵呵 没搞过ucos 见笑了
未命名.jpg
QUOTE:
呵呵 先谢谢了我在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 指教
List.JPG
如果任务被切换过,说明只是硬件LED驱动问题
呵呵 谢谢番茄大哥的指导教诲
请问原来是什么原因引起任务没跑起来导致LED没闪呀闪的?
QUOTE:
呵呵 不是代码的问题 是JLINK的问题 我没设置好JLINK 造成JLink在调试的时候一死一活的单步调试一下 就要N秒钟 估计是这个因素 导致STM32系统的时钟出错 所以 代码执行也有问题了
估计的 呵呵