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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

原創:在IAR平臺建立STC8ASK64S4A12單片機工程

  [復制鏈接]
跳轉到指定樓層
樓主
ID:351097 發表于 2019-8-17 12:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    一般我們使用STC單片機都是基于老舊的KEIL v4.0平臺,STC官方給的頭文件也是只支持keil v4.0平臺。我們如果要在其他平臺比如IAR上開發STC8ASK64S4A12,就沒法實現,網上也沒有人做過類似的事情。市面上有不少熱門的單片機,比如STM32系列單片機不僅支持keil v5.0平臺,而且支持IAR平臺,這將對開發者是非常便利的,不同開發平臺有不同的優點。   為了實現在IAR平臺開發STC8ASK64S4A12單片機,自己花了幾天時間重寫了兼容IAR平臺的頭文件、鏈接文件、配置文件,然后在IAR平臺成功實現建立STC8ASK64S4A12工程,并且調試成功通過。接下來詳細說明如何在IAR平臺建立STC8ASK64S4A12工程。
一、準備工作
1、安裝IAR for 8051 10.10.1版本;
2、在IAR設備添加STC單片機類型;
  將附錄文件夾devices下的STC文件夾復制到IAR安裝的目錄D:\IAR_8051_10\8051\config\devices中。
3、在IAR添加STC單片機頭文件;
  將附錄文件夾STC頭文件下的ioSTC8.h和ioSTC89xxxx.h復制到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選中large,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文件夾內。

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

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

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

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

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

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


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

全部資料51hei下載地址:

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

34.59 KB, 下載次數: 568, 下載積分: 黑幣 -5

準備文件

STC8A8K64S4A12.rar

226.62 KB, 下載次數: 376, 下載積分: 黑幣 -5

圖示例子工程文件

圖片文件.rar

732.66 KB, 下載次數: 239, 下載積分: 黑幣 -5

如果看不到圖片,就看圖片附件,序號對應好了

評分

參與人數 3黑幣 +110 收起 理由
digger + 30 絕世好帖!
kaier1234 + 30 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:282095 發表于 2019-8-18 09:03 | 只看該作者
感覺還是蠻不錯的
回復

使用道具 舉報

板凳
ID:351097 發表于 2019-8-18 13:42 | 只看該作者

多謝支持
回復

使用道具 舉報

地板
ID:43342 發表于 2019-10-2 17:28 | 只看該作者
謝謝樓主!
回復

使用道具 舉報

5#
ID:111683 發表于 2019-11-3 02:27 | 只看該作者
我剛剛從keil過來,兩個平臺不知道哪個好用
回復

使用道具 舉報

6#
ID:71535 發表于 2019-11-3 12:55 | 只看該作者
頂一下,個人感覺IAR比keil速度快些,用著順手。
回復

使用道具 舉報

7#
ID:645651 發表于 2019-11-20 11:17 | 只看該作者
stc官方要是支持IAR就方便了
回復

使用道具 舉報

8#
ID:645651 發表于 2019-11-20 11:18 | 只看該作者
支持原創,回頭試試看
回復

使用道具 舉報

9#
ID:20672 發表于 2019-11-23 13:28 | 只看該作者
謝謝分享~~
回復

使用道具 舉報

10#
ID:20672 發表于 2019-11-23 16:30 | 只看該作者
謝謝分享
回復

使用道具 舉報

11#
ID:248089 發表于 2019-12-1 14:23 | 只看該作者
謝謝分享~~~
回復

使用道具 舉報

12#
ID:171776 發表于 2019-12-9 17:07 | 只看該作者
必須點贊,給予了莫大的幫助
回復

使用道具 舉報

13#
ID:351097 發表于 2019-12-12 10:39 | 只看該作者
剛才自己重新下載了一下準備文件,編譯不通過,發現是頭文件被修改過,我是在8月17日寫這篇文章順便上傳的附件。頭文件在9月5號被修改成keil原版的,所以導致不支持IAR的編譯。我希望審核員不要隨便修改附件的內容,如果修改了,麻煩告知一下!
回復

使用道具 舉報

14#
ID:619556 發表于 2020-4-10 16:41 | 只看該作者
真心感謝。樓主厲害,剛剛學51單片機,什么都不會,慢慢學習了
回復

使用道具 舉報

15#
ID:299626 發表于 2020-10-19 19:36 | 只看該作者
很好的參考資料
回復

使用道具 舉報

16#
ID:853998 發表于 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文件您知道是起什么作用的嗎?
回復

使用道具 舉報

17#
ID:853998 發表于 2020-12-7 15:54 | 只看該作者
沒有你 發表于 2019-12-12 10:39
剛才自己重新下載了一下準備文件,編譯不通過,發現是頭文件被修改過,我是在8月17日寫這篇文章順便上傳的 ...

如果這樣的話,如何判斷我下載的頭文件是能用的還是不能用的?
回復

使用道具 舉報

18#
ID:351097 發表于 2020-12-15 20:17 | 只看該作者
lee8871 發表于 2020-12-7 15:54
如果這樣的話,如何判斷我下載的頭文件是能用的還是不能用的?

可以下載這個帖子的IAR工程,http://www.zg4o1577.cn/bbs/dpj-180611-1.html
回復

使用道具 舉報

19#
ID:351097 發表于 2020-12-15 20:18 | 只看該作者
lee8871 發表于 2020-12-3 20:22
看到你的  dff文件都是空白的,但是其他單片機的dll文件是大概這樣的:

;; IO Register definitions

ddf是硬件描述文件。你可以參考帖子http://www.zg4o1577.cn/bbs/dpj-181912-1.html
回復

使用道具 舉報

20#
ID:149505 發表于 2021-3-2 23:02 | 只看該作者
樓主 我用“原創:0.96寸單色OLED繪制電子鐘表盤的實現”里的“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”這影響編譯么?


回復

使用道具 舉報

21#
ID:102963 發表于 2021-3-5 23:19 | 只看該作者
感覺海水Keil好用,這個IAR用著感覺亂七八糟的。
回復

使用道具 舉報

22#
ID:106977 發表于 2021-3-7 16:31 | 只看該作者
Keil平臺加上STC的驅動,通過串口調試很方便了。資深開發者可玩玩其它開發平臺。初學者建議還是用Keil好。
回復

使用道具 舉報

23#
ID:149505 發表于 2021-5-28 15:51 | 只看該作者
moneng 發表于 2021-3-2 23:02
樓主 我用“原創:0.96寸單色OLED繪制電子鐘表盤的實現”里的“IAR平臺STC兼容文件”放到IAR 8051 8.10.3里 ...

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

使用道具 舉報

24#
ID:1094236 發表于 2023-9-22 10:39 | 只看該作者
謝謝樓主慷慨分享,這也太方便了
回復

使用道具 舉報

25#
ID:1101997 發表于 2023-12-2 08:45 | 只看該作者
不是使用C++的話,就編譯效率來說IAR不如KEIL,但對于大的工程明顯C++代碼更好組織一些。
回復

使用道具 舉報

26#
ID:106977 發表于 2023-12-3 00:28 | 只看該作者
有多余精力去折騰,Keil已經習慣,也很方便,沒覺得有啥毛病!STC官方開發的輔助軟件、聯機調試都是基于Keil。其它平臺缺乏生態,仔細想一想看值不值?
回復

使用道具 舉報

27#
ID:192623 發表于 2023-12-3 16:52 | 只看該作者
沒有意義, 本身IAR編輯器就不是很好
回復

使用道具 舉報

28#
ID:1130826 發表于 2024-8-22 22:57 | 只看該作者
謝謝lz!剛想轉到IAR就看到lz的帖子
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级片子 | 午夜视频在线观看网站 | 国产在线二区 | 欧美中文| 欧美亚洲在线 | 亚洲www啪成人一区二区麻豆 | 色综合天天天天做夜夜夜夜做 | 久色视频在线观看 | 国产日韩精品在线 | 国产一区二区精品在线 | 免费的日批视频 | 亚洲综合热| 99精品久久 | 中文一区| 亚洲国产精品一区二区www | 日本不卡免费新一二三区 | 久久1区| 涩涩鲁亚洲精品一区二区 | 黄色精品 | 成人免费观看男女羞羞视频 | 亚洲美女一区 | 国产精品久久久久久久久久久久久 | 日本a在线 | 欧美一区二区三区在线 | 欧美日韩在线一区二区三区 | 欧美黄色精品 | 91精品久久久久久久久中文字幕 | 日韩一二区在线 | 日韩在线视频一区二区三区 | 亚洲一区二区免费视频 | 久久久国产亚洲精品 | 宅男伊人 | 91原创视频 | 亚洲一区二区三区在线免费 | 在线成人免费观看 | 天堂一区二区三区四区 | www.亚洲成人网 | 中文在线а√在线8 | 欧美日韩一区二区三区不卡视频 | 中文字幕1区 | 99免费看 |