yangjie
yangjie - 认证专家
This guy hasn't written anything yet

注册于 3 years ago

回答
385
文章
2
关注者
16

在进行任务切换的时候,有可能会来一个中断,在任务切换完之后,开中断,执行中断,中断运行完之后,再运行线程。可以看看rt_schedule。

原来信号量值=5,线程release一次是给信号量的值+1
桌子上有5个苹果,别人每放进来一个(release),桌子上苹果就多一个;别人从桌子上拿走(take)一个,桌子上苹果就少一个,take完了就take不到了,但是可以一直release。

这里如果你想要的效果是:初始化只有5个车位,只能申请5次,完后也只能释放5次的话,需要初始化两个信号量相互牵制。
可以参考







    本帖最后由 yangjie 于 2018-9-21 15:21 编辑


正点原子探索者来报到~~

建议使用信号量互斥量等方式,线程1获取不到而挂起。不建议使用suspend函数

如果使用kprintf打印浮点数,可以先将浮点数扩大(扩大倍数根据个人精度需求而定),再将整数与小数部分打印就可以了。
比如1.23456...,如果只需要2位小数,就将该值扩大100倍,变成123123/100是整数部分,123%100`是小数部分

    本帖最后由 yangjie 于 2018-9-6 17:20 编辑


贴代码的时候不以正文的方式贴,可以修改帖子中代码部分改为插入代码的方式,这样看起来清晰很多呢, 如下:

1536224275(1).jpg
1536224275(1).jpg

回到
顶部

发布
问题

投诉
建议