欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 原創(chuàng):在IAR平臺建立STC8ASK64S4A12單片機工程 [打印本頁]

作者: 沒有你    時間: 2019-8-17 12:16
標題: 原創(chuàng):在IAR平臺建立STC8ASK64S4A12單片機工程
    一般我們使用STC單片機都是基于老舊的KEIL v4.0平臺,STC官方給的頭文件也是只支持keil v4.0平臺。我們?nèi)绻谄渌脚_比如IAR上開發(fā)STC8ASK64S4A12,就沒法實現(xiàn),網(wǎng)上也沒有人做過類似的事情。市面上有不少熱門的單片機,比如STM32系列單片機不僅支持keil v5.0平臺,而且支持IAR平臺,這將對開發(fā)者是非常便利的,不同開發(fā)平臺有不同的優(yōu)點。   為了實現(xiàn)在IAR平臺開發(fā)STC8ASK64S4A12單片機,自己花了幾天時間重寫了兼容IAR平臺的頭文件、鏈接文件、配置文件,然后在IAR平臺成功實現(xiàn)建立STC8ASK64S4A12工程,并且調(diào)試成功通過。接下來詳細說明如何在IAR平臺建立STC8ASK64S4A12工程。
一、準備工作
1、安裝IAR for 8051 10.10.1版本;
2、在IAR設(shè)備添加STC單片機類型;
  將附錄文件夾devices下的STC文件夾復(fù)制到IAR安裝的目錄D:\IAR_8051_10\8051\config\devices中。
3、在IAR添加STC單片機頭文件;
  將附錄文件夾STC頭文件下的ioSTC8.h和ioSTC89xxxx.h復(fù)制到IAR目錄D:\IAR_8051_10\8051\inc中。
單片機類型和頭文件都在附件上有,IAR for 8051 10.10.1軟件需要自己去下載安裝。
二、建立新工程
下面有圖文并茂簡介在IAR for 8051上建立STC8ASK64S4A12工程的詳細過程。我會把自己的工程上傳附錄文件中。
1、選擇菜單project下Create New Project,然后選擇Empty project。


2、選擇左邊的工程,右鍵選中OPTION,在窗口選中General Option下Target的Device那一欄,選擇右邊的小圖標


3、選中添加好的STC單片,STC8A8K64S4A12。如果找不到STC單片機,需要重新查看準備工作的部分有沒有做好


4、在Tgrget中,Data model選中l(wèi)arge,calling convertion選擇XDATA stack reetrant。


5、在Library Configuration中,Library選擇CLIB

6、Linker中勾選圖示的選型。

7、勾選圖示選型,這樣才會生成hex文件。

8、選擇菜單project中Edit Configuration,新建一個基于debug的工程,命名為:STC8A8S64S4A12

9、添加頭文件的目錄,這個是我自己工程的頭文件目錄
$PROJ_DIR$\代表工程的目錄    $PROJ_DIR$\..\..\Components\board\include代表工程的上一級,再上級一級目錄Components下board下include文件夾,一般頭文件放在include文件夾內(nèi)。

10、程序優(yōu)化等級一般選擇Medium,如果選擇high會有不少無關(guān)變量被IAR全部優(yōu)化掉,代碼所占空間達到最小化,但是調(diào)試可能有問題。如果不想某個變量被優(yōu)化,需要要在變量前加上volatile。

11、這是自己建立工程,利用DS18B20測量溫度,并且通過printf函數(shù)打印出來。

12、編譯后將hex文件燒錄到STC8A8K64S4A12單片機里,再用串口打印工具,打印測量溫度數(shù)據(jù)

三、IAR平臺的優(yōu)勢
IAR平臺對程序的編譯效率比較高,編譯所花時間比較少,另外IAR平臺還有一個高級的代碼分析工具:C-STAT Static Analysis,這個工具不同于編譯器,它會分析代碼潛在的隱患。比如你用malloc函數(shù)申請空間,如果沒有對申請的指針做NULL判斷,就用警告,但是如果直接用編譯器編譯,是沒有這個警告的。這就是這個工具高級的地方,它可以讓工程師完善代碼,減少隱患。這個是keil v4.0沒有的功能。
1、選擇C-STAT Static Analysis中Analysis Project

2、分析結(jié)果,用malloc()有隱患

3、最后對pBUF指針做非空判斷,再分析,就沒有警告了


四、STC單片機在IAR平臺的不足點
1、雖然IAR平臺支持多種燒錄器,但是沒有基于IAR平臺的STC單片機在線仿真工具和在線燒錄器,程序燒錄還是要用STC官方給的STC-ISP燒錄程序。這種情況下,調(diào)試程序一般用printf函數(shù)外加串口來監(jiān)控程序運行狀態(tài)。
五、后記
本人也是從接觸STC單片機入門的,STC給單片機初學(xué)者提供一個良好的學(xué)習(xí)平臺,我這次的移植,也是希望能夠多一個編譯平臺玩STC單片機,不再局限于keil平臺。不同平臺移植不容易,希望能得到大家的支持,共同完善。

全部資料51hei下載地址:

IAR平臺建立工程準備文件.rar

34.59 KB, 下載次數(shù): 568, 下載積分: 黑幣 -5

準備文件

STC8A8K64S4A12.rar

226.62 KB, 下載次數(shù): 376, 下載積分: 黑幣 -5

圖示例子工程文件

圖片文件.rar

732.66 KB, 下載次數(shù): 239, 下載積分: 黑幣 -5

如果看不到圖片,就看圖片附件,序號對應(yīng)好了


作者: 鵬博士PBs    時間: 2019-8-18 09:03
感覺還是蠻不錯的
作者: 沒有你    時間: 2019-8-18 13:42
鵬博士PBs 發(fā)表于 2019-8-18 09:03
感覺還是蠻不錯的

多謝支持
作者: kepuple    時間: 2019-10-2 17:28
謝謝樓主!
作者: creator    時間: 2019-11-3 02:27
我剛剛從keil過來,兩個平臺不知道哪個好用
作者: waerdeng    時間: 2019-11-3 12:55
頂一下,個人感覺IAR比keil速度快些,用著順手。
作者: specman    時間: 2019-11-20 11:17
stc官方要是支持IAR就方便了
作者: specman    時間: 2019-11-20 11:18
支持原創(chuàng),回頭試試看
作者: wdliming    時間: 2019-11-23 13:28
謝謝分享~~
作者: wdliming    時間: 2019-11-23 16:30
謝謝分享
作者: ligd_2001    時間: 2019-12-1 14:23
謝謝分享~~~
作者: SGonna    時間: 2019-12-9 17:07
必須點贊,給予了莫大的幫助
作者: 沒有你    時間: 2019-12-12 10:39
剛才自己重新下載了一下準備文件,編譯不通過,發(fā)現(xiàn)是頭文件被修改過,我是在8月17日寫這篇文章順便上傳的附件。頭文件在9月5號被修改成keil原版的,所以導(dǎo)致不支持IAR的編譯。我希望審核員不要隨便修改附件的內(nèi)容,如果修改了,麻煩告知一下!
作者: 827915432    時間: 2020-4-10 16:41
真心感謝。樓主厲害,剛剛學(xué)51單片機,什么都不會,慢慢學(xué)習(xí)了
作者: nqwang    時間: 2020-10-19 19:36
很好的參考資料
作者: lee8871    時間: 2020-12-3 20:22
看到你的  dff文件都是空白的,但是其他單片機的dll文件是大概這樣的:

;; IO Register definitions
;; Format:   tag = "NAME", "zone name", address, size in bytes, base, opt bit range
[Sfr]

;; USART0 group
;; ------------------------------------------------------------
sfr = "U0DBUF",            "SFR", C1, 1, base=16
sfr = "U0BAUD",            "SFR", C2, 1, base=16
sfr = "U0UCR",             "SFR", C4, 1, base=16
sfr = "U0UCR.FLUSH",       "SFR", C4, 1, base=16, bitRange=7
sfr = "U0UCR.FLOW",        "SFR", C4, 1, base=16, bitRange=6
sfr = "U0UCR.D9",          "SFR", C4, 1, base=16, bitRange=5
sfr = "U0UCR.BIT9",        "SFR", C4, 1, base=16, bitRange=4
sfr = "U0UCR.PARITY",      "SFR", C4, 1, base=16, bitRange=3
sfr = "U0UCR.SPB",         "SFR", C4, 1, base=16, bitRange=2
sfr = "U0UCR.STOP",        "SFR", C4, 1, base=16, bitRange=1
sfr = "U0UCR.START",       "SFR", C4, 1, base=16, bitRange=0
sfr = "U0GCR",             "SFR", C5, 1, base=16
sfr = "U0GCR.CPOL",        "SFR", C5, 1, base=16, bitRange=7


這個ddf文件您知道是起什么作用的嗎?
作者: lee8871    時間: 2020-12-7 15:54
沒有你 發(fā)表于 2019-12-12 10:39
剛才自己重新下載了一下準備文件,編譯不通過,發(fā)現(xiàn)是頭文件被修改過,我是在8月17日寫這篇文章順便上傳的 ...

如果這樣的話,如何判斷我下載的頭文件是能用的還是不能用的?
作者: 沒有你    時間: 2020-12-15 20:17
lee8871 發(fā)表于 2020-12-7 15:54
如果這樣的話,如何判斷我下載的頭文件是能用的還是不能用的?

可以下載這個帖子的IAR工程,http://www.raoushi.com/bbs/dpj-180611-1.html
作者: 沒有你    時間: 2020-12-15 20:18
lee8871 發(fā)表于 2020-12-3 20:22
看到你的  dff文件都是空白的,但是其他單片機的dll文件是大概這樣的:

;; IO Register definitions

ddf是硬件描述文件。你可以參考帖子http://www.raoushi.com/bbs/dpj-181912-1.html
作者: moneng    時間: 2021-3-2 23:02
樓主 我用“原創(chuàng):0.96寸單色OLED繪制電子鐘表盤的實現(xiàn)”里的“IAR平臺STC兼容文件”放到IAR 8051 8.10.3里后編譯提示“Warning[Pe618]: struct or union declares no named members C:\WorkTool\IAR Systems\Embedded Workbench 6.0 Evaluation\8051\inc\ioSTC8.h xxx”這影響編譯么?



作者: songxia8013    時間: 2021-3-5 23:19
感覺海水Keil好用,這個IAR用著感覺亂七八糟的。
作者: lgwd    時間: 2021-3-7 16:31
Keil平臺加上STC的驅(qū)動,通過串口調(diào)試很方便了。資深開發(fā)者可玩玩其它開發(fā)平臺。初學(xué)者建議還是用Keil好。
作者: moneng    時間: 2021-5-28 15:51
moneng 發(fā)表于 2021-3-2 23:02
樓主 我用“原創(chuàng):0.96寸單色OLED繪制電子鐘表盤的實現(xiàn)”里的“IAR平臺STC兼容文件”放到IAR 8051 8.10.3里 ...

ioSTC8(2021年05月28日15時49分46秒).rar (3.72 KB, 下載次數(shù): 7)
適用于Embedded Workbench 6.0 Evaluation 8051 8.10.3的STC8單片機編譯

作者: q622337    時間: 2023-9-22 10:39
謝謝樓主慷慨分享,這也太方便了
作者: nearsea    時間: 2023-12-2 08:45
不是使用C++的話,就編譯效率來說IAR不如KEIL,但對于大的工程明顯C++代碼更好組織一些。
作者: lgwd    時間: 2023-12-3 00:28
有多余精力去折騰,Keil已經(jīng)習(xí)慣,也很方便,沒覺得有啥毛病!STC官方開發(fā)的輔助軟件、聯(lián)機調(diào)試都是基于Keil。其它平臺缺乏生態(tài),仔細想一想看值不值?
作者: sanfang007    時間: 2023-12-3 16:52
沒有意義, 本身IAR編輯器就不是很好
作者: kaziyy    時間: 2024-8-22 22:57
謝謝lz!剛想轉(zhuǎn)到IAR就看到lz的帖子




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1