scpcw
发表于 2025-6-27 20:59:37
今天开始认真学一下RTOS的API,熟悉一到几种RTOS,方便后面的学习:
OSMutexPend (APP_CFG_UART1_MUTEX_PRIO,0,&perr);
printf("D is run\r\n");
OSMutexPost(APP_CFG_UART1_MUTEX_PRIO);
神农鼎
发表于 2025-6-27 21:39:41
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf
这个实验做了吧
深圳国芯人工智能有限公司-工具软件
深圳国芯人工智能有限公司-库函数
scpcw
发表于 2025-6-28 18:50:24
神农鼎 发表于 2025-6-27 21:39
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf
谢谢你们!AI8051实验箱以经给我赠送了,我只是想要一个开天斧,学习一下CosyOS。
您说的USB不停电下载,我都掌握了。
AI8051U库函数新版,旧版我都研究了一下,都太妙了,新版本的更是绝妙。带我学了太多的宏。
一些外设还没来得及学习。没有做实验。
最近学Ai8051 RTOS,资料太少。碰到问题太难理代码了。也没有老师帮我找bug。
官方下载的AI8051U-uCOS-II 我互斥信号,故意不释放,但另外的任务还是可以获取。找不到问题。
我移植CosyOS到AI8051实验箱也完成不了。卡住了。想用一个开天斧看一下正常现象。
神农鼎
发表于 2025-6-28 21:33:41
scpcw 发表于 2025-6-28 18:50
谢谢你们!AI8051实验箱以经给我赠送了,我只是想要一个开天斧,学习一下CosyOS。
您说的USB不停电下载, ...
开天斧-STC8H8K64U, 免费+包邮送,您工作时间联系我们客服
【免费 + 包邮 送】 送/申样/采购 可上班时间加 如下您对应地区分销商的客服 QQ或微信联系
加STC华南区客服司经理QQ: 2234917869 ;微信:18012226298要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服佘经理QQ: 614777595; 微信:18106296591 要求 【免费+包邮】 送, 还免费教仿真
加STC华南区客服曹经理QQ: 1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ: 2593903262; 微信:18106296598要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服吴经理QQ: 1463035472; 微信:19952583954要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服石经理QQ: 1638975601 ;微信:19952583876要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ; 微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服李经理QQ: 1017142298 ;微信:19952583534要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服曹经理QQ: 3897745450 ;微信:18012226281 要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服吴经理QQ: 1463035472 ;微信:19952583954 要求 【免费+包邮】 送, 还免费教仿真
工作时间:8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)
【免费 + 包邮 送】 送/申样/采购传统电话热线:0513-55012928,0513-89896509,0513-55012929
2025/4/15, 统一安排【免费 + 包邮 送】服务人员
scpcw
发表于 2025-6-28 22:39:25
终于操作看到了CosyOS互斥信号量的实验现象了。nice!
谢谢厂家又送了开天斧,一定好好学习,天天向上 {:baoquan:}
uCreateTask(TASK_A, TASK_A_PRI, TASK_A_STACK , 0, 0)
{
while(1)
{
P01 = ~P01;
if(devstate.cat1_work_flag == 0) //检查是不是
{
if(uTakeMut(Uart_pcw, +0))printf("runing P01 TASK_A\n");
uBackMut(Uart_pcw);
uDelay_ms(500);
}
}
}
//------------------------------------------------------------------------------------
/* 创建 TASK_B */
uCreateTask(TASK_B, TASK_B_PRI, TASK_B_STACK , 0, 0)
{
while(1)
{
P00 = ~P00;
uDelay_ms(500);
uTakeMut(Uart_pcw, ~0);
printf("runing P00 TASK_B\n");
uDelay_ms(3000);
uBackMut(Uart_pcw);
}
}
scpcw
发表于 2025-6-29 17:02:56
CosyOS 计数信号量。给予和归还 其实是一个函数,两个马夹{:titter:}
uCreateTask(PRESS_TASK, PRESS_TASK_PRI, PRESS_TASK_STACK , 0, 0)
{
while(1)
{
if(~P33)
{
printf("p33 sem take -1\n");
uTakeSem(sem,+0); //获取
}
if(~P32)
{
printf("p32 sem Give +1\n");
uGiveSem(sem); //给予
}
if(~P47)
{
printf("p47 reset sem back +1\n");
uBackSem(sem); //归还
}
uDelay_ms(50);
}
}
scpcw
发表于 2025-7-7 22:54:02
if(true){ uTESTID = 0x01; /* 恢复挂起 */
//printf("135:counter=%d uCounter=%d",counter,uCounter);
printf("1");
counter = ++uCounter + 1;
//printf("switch:counter=%d uCounter=%d",counter,uCounter);
printf("2");
uSuspendTasking;
printf("4");
//uService_Switch(uSuspendTasking);
//printf("138:counter=%d uCounter=%d \r\n",counter,uCounter);
if(uCounter != counter) goto __PROGRAMFLOW_ERROR; \
//uDelay_s(1);
uService_Switch(uResumeSuspend(TASK_B));
}
if(true){ uTESTID = 0x02; /* 阻塞 */
printf("6");
uService_Switch(uDelay_tc(~0));
uService_Switch(uDelay_tc(~0));
}
这个测试程序是TASKA 执行一条,TASKB执行一条,终于看懂了。
聪明人设计的指令,我喜欢。
scpcw
发表于 2025-7-11 17:46:44
继续学习CosyOS
ai8051coys0.3ai8051u usb_cdc查询方式
scpcw
发表于 2025-7-14 22:50:55
几个日日夜夜,终于搞清楚了,用AIcube 生成AI8051U的USB_CDC 中断方式,setup到CosyOS III.把taskmgr输入输出都调试正常了。回贴庆祝一下。
2K edata+32K Xdata 的ai8051好象RTOS在内存管理上有些问题,USB_CDC也只能工作在small模式。
而STC8H128data 128idata+8K Xdata keil内存管理不一样吗?RTOS管理起来正常些。
vb2002
发表于 2025-7-14 23:36:29
scpcw 发表于 2025-7-14 22:50
几个日日夜夜,终于搞清楚了,用AIcube 生成AI8051U的USB_CDC 中断方式,setup到CosyOS III.把taskmgr输 ...
强,这么段时间就这么强了.