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

標(biāo)題: 原創(chuàng):在IAR平臺(tái)建立STC8ASK64S4A12單片機(jī)工程 [打印本頁(yè)]

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


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


3、選中添加好的STC單片,STC8A8K64S4A12。如果找不到STC單片機(jī),需要重新查看準(zhǔn)備工作的部分有沒(méi)有做好


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


5、在Library Configuration中,Library選擇CLIB

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

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

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

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

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

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

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

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

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

3、最后對(duì)pBUF指針做非空判斷,再分析,就沒(méi)有警告了


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

全部資料51hei下載地址:

IAR平臺(tái)建立工程準(zhǔn)備文件.rar

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

準(zhǔn)備文件

STC8A8K64S4A12.rar

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

圖示例子工程文件

圖片文件.rar

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

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


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

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


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

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

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

;; IO Register definitions

ddf是硬件描述文件。你可以參考帖子http://www.zg4o1577.cn/bbs/dpj-181912-1.html
作者: moneng    時(shí)間: 2021-3-2 23:02
樓主 我用“原創(chuàng):0.96寸單色OLED繪制電子鐘表盤(pán)的實(shí)現(xiàn)”里的“IAR平臺(tái)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    時(shí)間: 2021-3-5 23:19
感覺(jué)海水Keil好用,這個(gè)IAR用著感覺(jué)亂七八糟的。
作者: lgwd    時(shí)間: 2021-3-7 16:31
Keil平臺(tái)加上STC的驅(qū)動(dòng),通過(guò)串口調(diào)試很方便了。資深開(kāi)發(fā)者可玩玩其它開(kāi)發(fā)平臺(tái)。初學(xué)者建議還是用Keil好。
作者: moneng    時(shí)間: 2021-5-28 15:51
moneng 發(fā)表于 2021-3-2 23:02
樓主 我用“原創(chuàng):0.96寸單色OLED繪制電子鐘表盤(pán)的實(shí)現(xiàn)”里的“IAR平臺(tái)STC兼容文件”放到IAR 8051 8.10.3里 ...

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

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




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 午夜小视频在线播放 | 国产一区二区精华 | 91精品国产欧美一区二区 | 免费观看av | 亚洲欧美中文字幕在线观看 | 久草网址| 精品久久久久国产 | 久久精品亚洲 | 91视视频在线观看入口直接观看 | 亚洲午夜精品视频 | 午夜天堂精品久久久久 | 欧美一区二 | 欧美v日韩v| 99tv | 欧美综合一区二区三区 | 欧美日韩中文字幕在线播放 | 国产精品久久国产精品 | 久久国产视频播放 | 国产高清视频一区 | 欧美精品欧美精品系列 | 中文字幕在线三区 | 久久精品中文 | 一区二区成人 | 最新中文字幕在线 | 免费特级黄毛片 | 亚洲精品成人在线 | 久久久久一区 | 久久99精品久久久久久国产越南 | 夜夜骑天天干 | 国产一卡二卡三卡 | 国产精品久久久久久影院8一贰佰 | 午夜免费观看体验区 | 亚洲成人一二区 | 午夜欧美| 91在线视频网址 | 三级视频在线观看电影 | 91久久精品国产 | 九九免费在线视频 | 久草成人 | 亚洲人成人一区二区在线观看 | 欧洲尺码日本国产精品 |