久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6797|回復: 12
打印 上一主題 下一主題
收起左側

在STC8A8K64A4S12單片機芯片移植使用small RTOS 附源程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:505284 發表于 2020-9-2 20:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   大好的一個暑假又過去,接觸51單片機也有兩年多了,從單初的入門到熟悉,再有一個年頭就面臨就業問題了,最后發現這幾年51單片機雖然經典,但是也到了差不多該退出歷史的舞臺了,盡管8系列的芯片性能還不錯,但是較STM32系列的F3就能把它打的落花流水,當然這里也不是貶低STC單片機,只是說物盡其能嘛,什么樣的需求,選擇什么樣的芯片,但是就市場而言STM32無疑是占據了一定優勢了,比如速度可以高達百兆,可以搭載諸多RTOS(UCOS/free RTOS等),還可以移植emwin等諸多GUI,使得人機交互界面更上一層樓,DMA、FMSC、DIO硬協議的集成,結合庫的開發,功能強大的同時,開發周期也更短,性價比超高。    說了這么多,也就是我也進入那股大潮流中去了,為此還是有許多不甘心的,比如在STC單片機上的應用還比較少,為此在轉入學習ucos之前,打算在學習了操作系統的基礎上,在讓手里的51發揮些余熱,為STM32開開路。自從編程從結構化到攜帶操作系統,特別是復雜的多任務處理,讓單片機的并行與并發在多個任務之間處理得淋漓盡致,用過之后就在也回不去了。于是就尋思著 在這個51單片機內核得STC8上帶個操作系統跑破玩玩,于是就找到了2004年周立功公司開發的,陳明計工程師編寫的開源small RTOS研究使用一番,作為在最后謝幕的結果。他開發的這個操作系統還是有很多優點的,不如說最直接的就是占用SRAM少,堆棧指針比比較精簡,支持多達255層中斷嵌套,可裁剪,用戶自定義配置豐富,支持消息隊列、信號量、郵箱等諸多功能。開始使用的時候因為趕時間嘛,就用了它開發了一套簡易的系統,其實也不算完整的系統,就是把外部的電路模塊集成到一塊,加了個操作系統整合了,后面加到NRF24L01和1.8寸TFT液晶驅動時才發現,喔呦,編譯出錯了,報錯信息是“DATA”,內存溢出了,原來該操作系統僅僅支持編譯的small模式(DATA),對于XDATA和PDATA模式操作系統是無法引導的,這個就麻煩了呀,所有的變量遠離data、idata,希望變量都加上xdata關鍵字,最后發現還是不行,這樣有些值是讀不出來的,甚至編譯器報錯,各種奇葩的bug,原本說支持最多16個任務的,現在就僅僅寫了7-8個就已經無法使用了,我猜測,這個也有可能是當年它由轟動一時,到后來的無人問津的原因之一吧。還有要吐槽的是其實對于消息對列和郵箱我個人感覺都是多余的,很多東西一個全局變量就解決了,使用了消息隊列反倒占用內存不說,變量定義的更多了,操作系統切換任務的堆棧寄存器都不夠用了,還有信號量,都變成使用中斷開關了,參考了它的例子,消息隊列應用在了鍵盤發送,和一個值接收進程,好像也沒有多大用處,裝個逼倒是還不錯。最后只能總結得出看樣子51還是不適合搭載操作系統了,重要的函數重載都不可以。后來就去使用了RTX-51-tiny去了,一個頭文件搞定,對于超出127字節的small區,可以改用XDATA,還可以刪除任務,還不錯。好了,最后就來看下效果吧,手都酸了,歡迎批評指正。

P00902-200511(1).jpg (2.84 MB, 下載次數: 124)

1.8寸測溫度

1.8寸測溫度

P00902-200456(1).jpg (1.9 MB, 下載次數: 141)

1.8寸采集光敏電阻

1.8寸采集光敏電阻

P00902-200323.jpg (3.5 MB, 下載次數: 131)

0.96寸顯示圖片

0.96寸顯示圖片

P00902-200314.jpg (4.31 MB, 下載次數: 127)

0.96寸顯示溫濕度

0.96寸顯示溫濕度

P00902-200308.jpg (4.53 MB, 下載次數: 132)

0.96寸顯示ADC

0.96寸顯示ADC

P00902-200259.jpg (4.41 MB, 下載次數: 135)

顯示界面

顯示界面

P00902-200249.jpg (4.19 MB, 下載次數: 149)

0.96寸顯示時間

0.96寸顯示時間

P00902-200141.jpg (4.12 MB, 下載次數: 134)

關機狀態

關機狀態

39 TFT_1.8寸全彩.rar

240.43 KB, 下載次數: 69, 下載積分: 黑幣 -5

RTX-51-Tiny

37 small_RTOS.rar

282.25 KB, 下載次數: 99, 下載積分: 黑幣 -5

small_RTOS

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:108573 發表于 2020-9-3 08:27 | 只看該作者
結構化變成感覺風格很好,就是有時候結構不知道怎么去組織
回復

使用道具 舉報

板凳
ID:505284 發表于 2020-9-3 09:12 來自手機 | 只看該作者
神出沒 發表于 2020-9-3 08:27
結構化變成感覺風格很好,就是有時候結構不知道怎么去組織

其實,結構化的編程是比較考驗人的思維的,但為什么后來會發展為面向對象和攜帶操作系統的編程呢,簡單了說,如處理一個按鍵,在結構化中大循環while1,如果沒有開其他中斷程序,那程序的執行就會是順序的,那么就會發生一個現象,按鍵有些時候不靈,特別難受,解決方法就是要么你加一個外部中斷檢測口,要么就是攜帶操作系統,顯然后者在軟件上處理比較容易,因為操作系統中各任務就像是同時運行的,優先級高的操作系統可以及時響應,很多模塊程序以API方式接入,容易糾錯,方便引入和替換。結構化的編程是低層的東西,注重思維和邏輯,通常做個東西,你會確定它的需求,從而定位功能,從功能確定大體架構,再從架構細分出模塊,各模塊做出流程圖,最后選擇合適的方式編程實現。具體的解決方案可以學習軟件工程方面書籍,結合一下比賽,不如電賽題目等,動手實踐一波,相信你的結構就會組織起來了,加油!純屬個人見解,各位大佬,高手不喜勿噴哦,歡迎批評指正。
回復

使用道具 舉報

地板
ID:691028 發表于 2020-9-3 09:33 | 只看該作者
當時為了這個RTOS還專門買了他們出的書,到后來也沒有研究明白任務是如何切換的。
回復

使用道具 舉報

5#
ID:89217 發表于 2020-9-3 10:30 | 只看該作者
TFT沒怎么玩過  受教了
回復

使用道具 舉報

6#
ID:342197 發表于 2020-10-14 10:13 | 只看該作者
大神,請問一下:STC8A8K單片機 同時使用串口1 和 串口2 怎樣避免沖突,謝謝
回復

使用道具 舉報

7#
ID:505284 發表于 2020-12-14 21:52 | 只看該作者
遠征之路 發表于 2020-10-14 10:13
大神,請問一下:STC8A8K單片機 同時使用串口1 和 串口2 怎樣避免沖突,謝謝

可以考慮從串口優先級入手啊,保障串口1或者串口2中其中一個優先級最高,那么問題來了,不知道你說的同時工作是 一發一收,兩發、還是兩收、同收發的情況呢?如果是同時接受、同時發送的話,可以考慮優先級調度,進高優先級中斷時屏蔽低優先級的,低優先級中斷時不是必要不必屏蔽高的;如果是是一發一收,可以考慮,一個正常,另一個用第三方定時器觸發,這個是正點原子解決多串口并發工作的極好的解決方式哦。
回復

使用道具 舉報

8#
ID:254226 發表于 2021-12-22 10:02 | 只看該作者
51內核的MCU從傳統編程,到基于OS的編程,跨度很大!
回復

使用道具 舉報

9#
ID:476652 發表于 2022-1-1 22:25 | 只看該作者
大神,有開發板資料也建議分享出來,畢竟大家玩的人多了,各種移植也就多了,
回復

使用道具 舉報

10#
ID:505284 發表于 2022-1-12 12:17 | 只看該作者
xylove51 發表于 2021-12-22 10:02
51內核的MCU從傳統編程,到基于OS的編程,跨度很大!

從編譯角度來說,51編譯器底層采用的地址策略是分時復用的,最大的問題就是編寫的函數很多是不可重入的,然而你如果使用OS的話,需要的就是可重入的;另外一個方面是51單片機寄存器組是R0-R7,分為0-3個bank,對于上下文切換不太友好。
回復

使用道具 舉報

11#
ID:87000 發表于 2023-2-17 10:52 | 只看該作者
對學習點屏還是有很大的幫助的
回復

使用道具 舉報

12#
ID:87000 發表于 2023-2-17 16:50 | 只看該作者
small_RTOS 用了單片機掉電休眠,而 RTX-51-Tiny 里面去掉了,是不是RTX-51-Tiny不支持休眠功能吧?
回復

使用道具 舉報

13#
ID:216265 發表于 2023-4-25 15:41 | 只看該作者
牛在飛 發表于 2020-9-3 09:12
其實,結構化的編程是比較考驗人的思維的,但為什么后來會發展為面向對象和攜帶操作系統的編程呢,簡單了 ...

非常熱心的人,技術還很高,又很謙虛,做朋友吧
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级毛片大全免费播放 | 国产免费一二三区 | 91色啪| 国产精品毛片一区二区在线看 | 永久免费在线观看 | 日韩成人影院 | 日本一区高清 | 国产精品一区二区在线免费观看 | 国产午夜在线 | 一级免费a | 黄色网址在线免费观看 | 免费成人高清在线视频 | 国产欧美久久一区二区三区 | 午夜视频一区二区 | 国产精品自拍视频 | 波多野结衣中文字幕一区二区三区 | 久久精品国产v日韩v亚洲 | 欧美中文字幕一区二区三区亚洲 | 三级黄色片在线观看 | 精品视频一区二区在线观看 | 欧美高清dvd| 精品亚洲一区二区三区四区五区高 | 狠狠干天天干 | 欧美精品一区二区在线观看 | 久久亚洲一区二区三区四区 | 久久久久久a | 国产丝袜一区二区三区免费视频 | 精品日韩在线 | 精品久久一| 亚洲欧美一区二区三区在线 | 一级黄色片毛片 | 日本不卡免费新一二三区 | 久久婷婷国产香蕉 | 永久免费在线观看 | 人人玩人人添人人澡欧美 | 综合精品久久久 | 一区二区精品在线 | 亚洲高清成人 | 欧美精品在线视频 | 久久久精彩视频 | 国产激情视频在线免费观看 |