单片机上运行linux程序代码,在Linux下烧录51单片机
原標題:在Linux下燒錄51單片機
*本文作者:LEdge1,本文屬 FreeBuf原創獎勵計劃,未經許可禁止轉載。
背景
我一直在學習Linux 系統,但是最近還要學習51單片機,所以在Linux下給51單片機燒錄程序那是非常必要的。
之前在windows上使用keil十分方便,但是轉移到Linux上去沒有專門給單片機燒寫程序的IDE了。無奈只能自己一步一步地配置咯!
看了網上一些博客發現他們寫的很模糊,像我這種Linux小白真的是一頭霧水,在自己搗鼓了兩天之后,把自己的心得發出來,像我那些即將或者正在為此事煩惱的人能夠稍微輕松一點!
正文
首先得使用USB轉TTL模塊給51單片機接線。
接完線之后,我們得在Linux下配置我們的開發編譯環境。
首先我們得配置SDCC編譯器,像我使用了Ubuntu,我直接使用包管理器安裝。當然了你也可以去下載文件自己下來編譯!
這里我貼上sdcc的網站鏈接文字
sudo apt install sdcc
當然了我們有了編譯器還不行。我們還需要可以給51單片機燒錄程序的軟件啊。哈哈。它就是stcflash,大家可以直接使用git命令去克隆到本地
解壓之后會有一個名為stcflash 的可執行腳本。
我把她重新命名了一下,為了方便我直接把他重新命名為1。之后為1添加可執行權限。
chmod +x 1
這樣的話,就算沒有后綴名的花也可以運行,因為在腳本第一行就已經申明了運行。同樣的我貼上stcflash的github的地址。
之后我們得把它添加到環境變量里面去。
mv 1/usr/local/bin/
這時候我們得安裝一個依賴,因為51單片機是使用串口下載程序的,安裝一個python serial。
apt install python serial
這時候我們可以執行1(stcflash.py)這個腳本了,這時候切換到工作目錄中,寫一個51單片機的程序。在Linux下寫的和Windows下寫程序會有一些不同的地方。
比如說在Windows下引用reg51.h這個頭文件就好了而在linux下我們得引用msc51/8051.h這個頭文件。
當然了我們在Windows下寫定義端口的的時候是使用^符號,而在Linux下要使用_符號來表示。
我在這里只是簡單介紹一下如何在Linux下燒錄單片機,不是來告訴你在Linux和Windows下編寫程序的時候有哪些不同的,這些要注意的是我們自己要去摸索的。
編寫之后我們就可以使用SDCC 編譯我們的.c代碼了。
sdcc main.c
但是sdcc編譯出來的是.ihx文件。但是燒錄51單片機是要使用.hex文件。不要怕,其實我們在安裝sdcc的時候我們就已經安裝了一個packihx軟件 。這個軟件的功能就是將.ihx文件轉化成.hex文件的。
packihx mian.ihx>main.hex
使用命令packihx之后,現在我們就有了可以燒寫的了.hex文件了。
我們之前就已經把1(stcflash.py) 放到了我們的環境變量了,對就是那個我重名命為1的軟件。我們在使用1這個軟件的時候我們要使用root權限。當然了stcflash會自動識別我們插入的端口,但是你電腦上有多個串口的話,你可能要指定一下串口號。我這里只有這一個串口號,所以他就會自動識別,目前來看她自動識別還是聽準確的。目前沒啥問題!
stcflsh main.hex --port /dev/ttyusb0
我的串口號是USB0。
51 單片機是要斷電重啟才能燒錄的,所以我們斷電重啟一下。
OK
完美。萬事開頭難,解決了第一步,大家都可以開始奔放了。
總結
在最后我得感謝一下B站了,說真的B站是個學習的好地方!大家不要總是追番啦。里面有很多有用的東西!!!!
第一次寫稿子,希望今后發布更多的稿子!!!這個文檔寫的很詳細大家跟著做基本都可以解決問題。
*本文作者:LEdge1,本文屬 FreeBuf原創獎勵計劃,未經許可禁止轉載。返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的单片机上运行linux程序代码,在Linux下烧录51单片机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux没有root密码xshell,
- 下一篇: linux运行core控制台程序,Vis