找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1706|回復(fù): 3
收起左側(cè)

UCOSIII操作系統(tǒng)printf函數(shù)的疑問

[復(fù)制鏈接]
ID:646520 發(fā)表于 2022-11-28 16:35 | 顯示全部樓層 |閱讀模式
大家好,小弟剛接觸操作系統(tǒng),今天在學(xué)習(xí)原子哥的UCOSIII信號量與互斥信號量(上)的時候,視頻舉了一個直接訪問共享內(nèi)存不加鎖的例子,具體的代碼的和現(xiàn)象見下圖。我不明白任務(wù)1的優(yōu)先級比任務(wù)2的優(yōu)先級高,且printf前沒有任務(wù)調(diào)度函數(shù),不應(yīng)該任務(wù)1的printf執(zhí)行完,到延時1s的時候才會發(fā)生調(diào)度嗎?為什么會出現(xiàn)這個現(xiàn)象。大佬們可以大致描述一下程序運行過程嗎?

任務(wù)1

任務(wù)1

任務(wù)2

任務(wù)2

函數(shù)

函數(shù)
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2022-11-29 04:24 | 顯示全部樓層
任務(wù)1的printf確實執(zhí)行了,但是printf之前有delayms,這期間執(zhí)行任務(wù)2的memcpy把任務(wù)1的數(shù)據(jù)覆蓋掉了,所以你以為并沒有執(zhí)行。
回復(fù)

使用道具 舉報

ID:646520 發(fā)表于 2022-11-29 08:36 | 顯示全部樓層
Hephaestus 發(fā)表于 2022-11-29 04:24
任務(wù)1的printf確實執(zhí)行了,但是printf之前有delayms,這期間執(zhí)行任務(wù)2的memcpy把任務(wù)1的數(shù)據(jù)覆蓋掉了,所以 ...

謝謝大佬,我明白了,我以為delay_ms()不會觸發(fā)任務(wù)切換,OSTimeDlyHMSM才會
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2022-11-29 21:19 | 顯示全部樓層
最后一個夏天1 發(fā)表于 2022-11-29 08:36
謝謝大佬,我明白了,我以為delay_ms()不會觸發(fā)任務(wù)切換,OSTimeDlyHMSM才會

那種傻等式delay_ms()確實不會觸發(fā)任務(wù)調(diào)度,但是STM32上面不太可能用傻等,可能會調(diào)用systick中斷一類的方式,就很可能觸發(fā)任務(wù)調(diào)度了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表