mac 搭建單片機開發環境

我的只按照下面的鏈接到了安裝python3的前一步,安裝python3以及後面還沒弄。

文章參考鏈接如下

https://www.jianshu.com/p/d16025a34cfe

環境說明

操作系統:macOS High Sierra

這是我電腦系統的版本,理論上支持Mac的所有版本

燒錄代碼到單片機

安裝sdcc

sdcc是用於Intel 8051 Maxim 80DS390和Zilog Z80的ANSI C編譯器

在Mac上可以用過 brew 來安裝, brew 是Mac的包管理管理工具,就和 redhat 的 yum 和 Ubuntu 的 apt-get 一樣。

安裝命令:

 

$ brew install sdcc

安裝CH341驅動

開發板上默認已經集成了usb轉串口模塊,它上面使用的CH340芯片。但是在CH340官網上面沒有找到mac系統的驅動,只找到了CH341版本的mac系統驅動,根據官方文檔說明,這個驅動也兼容CH340芯片,所以安裝CH341版本的驅動就可以了。

下載地址:CH341 for mac

然後將下載好的 zip文件解壓打開雙擊運行目錄裏面的ch34xInstall.pkg,根據提示一直點擊下一步就可以了,最後按照提示重啓電腦就可以了。

怎麼確認驅動安裝成功了呢???

將單片機連接到電腦上然後打開iTerm命令行窗口後執行:

 

$ ls /dev/tty.wchusbser*

如果輸出類似下面的數據就說明驅動安裝成功!

 

$ ls /dev/tty.wchusbser*
/dev/tty.wchusbserial1410

安裝燒錄程序stcgal

在linux和mac系統下使用得比較多的是stcgal

下載地址:https://github.com/grigorig/stcgal

下載好的這個是python腳本,所以我們需要提前安裝python,一般情況下mac裏面已經默認安裝了python,但是最新版本只支持 python3,所以需要安裝 python3 版本,我的這篇文章介紹了 python3 的安裝,需要的話可以看看: https://www.fkomm.cn/article/2018/7/16/12.html

下載後解壓
運行 ./setup.py build以構建並 sudo ./setup.py install來安裝 stcgal。

這樣開發環境就搭建完啦,下面我們來測試一下!!!

測試單片機跑馬燈

編寫測試代碼,將保存爲pmd.c

 

#include <8052.h> // 引用頭文件


#define ADDR0 P1_0
#define ADDR1 P1_1
#define ADDR2 P1_2
#define ADDR3 P1_3
#define ENLED P1_4


//========= 延時 ============
void delay_ms(unsigned int s){

    unsigned int x;

    for(s;s>0;s--){
        x = 98;
        while(x--);
    }
}

//================ 主函數 ===================

void main(){

    unsigned char i;
    
    ENLED = 0;
    ADDR3 = 1;
    ADDR2 = 1;
    ADDR1 = 1;
    ADDR0 = 0;

    while(1){ //主循環
    
        P0 = 0xff;

        delay_ms(150);

        for(i = 0;i<8;i++){
            P0 = P0 <<1;
            delay_ms(150);
        }

        P0 = 0xff;
        
        delay_ms(150);

        for(i = 0;i<8;i++){
            P0 = P0 >>1;
            delay_ms(150);
        }
    }
}

使用sdcc編譯程序

sdcc默認會幫我們編譯出很多目標文件,這裏我們只需要.ihx後綴的文件就可以,其它的文件可以刪除。

 

$ sdcc pmd.c

$ ls
pmd.asm pmd.c   pmd.ihx pmd.lk  pmd.lst pmd.map pmd.mem pmd.rel pmd.rst pmd.sym

將代碼燒錄到開發板中

下面的參數 -P 表示使用的是stc89型號, -p /dev/tty.wchusbserial1410 表示usb串口設備 , pmd.ihx 是剛剛編譯好的程序!

 

➜ $ stcgal -P stc89 -p /dev/tty.wchusbserial1410 pmd.ihx
Waiting for MCU, please cycle power: done
Protocol detected: stc89
Target model:
  Name: STC89C52RC/LE52R
  Magic: F002
  Code flash: 8.0 KB
  EEPROM flash: 6.0 KB
Target frequency: 11.088 MHz
Target BSL version: 6.6C
Target options:
  cpu_6t_enabled=False
  bsl_pindetect_enabled=False
  eeprom_erase_enabled=False
  clock_gain=high
  ale_enabled=True
  xram_enabled=True
  watchdog_por_enabled=False
Loading flash: 203 bytes (Intel HEX)
Switching to 19200 baud: checking setting testing done
Erasing 2 blocks: done
Writing flash: 640 Bytes [00:00, 1801.87 Bytes/s]
Setting options: done
Disconnected!

這樣就可以在單片機上看到你需要的效果啦!!!

重點

使用sdcc編譯單片機程序,跟windows下面keil的c代碼是有一些差別的,列表如下:

可以看到,這個差別是非常小的。所以對於初學者來說,一定要注意不要用錯了頭文件的引用,雖然會報錯,但還是要注意一下,提高編程的效率。其它的內容,碰到了就注意用對應的語法,碰不到暫時就不用管。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章