#事情是这样的
那天我想给RTOS单一个任务计算其执行次数
期间怀疑了好多次:
是不是任务切换时将变量的数据清除了
是不是没有分配到内存
是不是需要用到全局变量
期间出现的问题
printf中的“%d”确实在递增 但是是从-151809然后-151808这样开始递增,给
unsighed int num;
也是无法从头开始,通过定义为short int
将printf的数值缩小到23502改为uint8_t
将数值缩小到了166但是依然是没有办法获得想要的从0开始累加
但是一设置为num=0之后printf 一直输出为0
发现问题在于task中是利用死循环while(1)使task的内容一直处于运行状态
如果将一些设定和声明置于循环之中 会令任务每次回来执行的时候都会重新初始化因此不是所有的任务内容都置于while(1)
最后结果图
其实可以尝试使用static来修饰 这样也许也能解决这个问题
与此同时,试过将声明变量置于start_task任务开始之前
但是都无济于事,这是为什么?目前不明 希望大佬赐教