高级会员

- 积分
- 967
- 金钱
- 967
- 注册时间
- 2017-1-4
- 在线时间
- 431 小时
|

楼主 |
发表于 2020-5-20 14:01:26
|
显示全部楼层
大家好我有仿真测试了下
初始化的时候屏蔽
//uart_init(115200); //串口波特率设置
// usmart_dev.init(84); //初始化USMART
还是 仿真卡在这个函数里,但是这个函数功能上没有用,打印有关的都屏蔽掉了
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
USART1->DR = (u8) ch;
return ch;
}
#endif
另外系统就在
OS_CRITICAL_ENTER();//进入临界区
//创建开始任务
OSTaskCreate((OS_TCB * )&StartTaskTCB, //任务控制块
(CPU_CHAR * )"start task", //任务名字
(OS_TASK_PTR )start_task, //任务函数
(void * )0, //传递给任务函数的参数
(OS_PRIO )START_TASK_PRIO, //任务优先级
(CPU_STK * )&START_TASK_STK[0], //任务堆栈基地址
(CPU_STK_SIZE)START_STK_SIZE/10, //任务堆栈深度限位
(CPU_STK_SIZE)START_STK_SIZE, //任务堆栈大小
(OS_MSG_QTY )0, //任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息
(OS_TICK )0, //当使能时间片轮转时的时间片长度,为0时为默认长度,
(void * )0, //用户补充的存储区
(OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任务选项
(OS_ERR * )&err); //存放该函数错误时的返回值
OS_CRITICAL_EXIT(); //退出临界区
OSStart(&err); //开启UCOS
在退出临界数值开启UCOS 之前, 也就是没有启动起来 就跳入 int fputc(int ch, FILE *f) 函数
|
|