新聞中心
隨著技術(shù)的不斷發(fā)展,物聯(lián)網(wǎng)技術(shù)已經(jīng)逐漸成為了未來發(fā)展的重要方向。作為物聯(lián)網(wǎng)設(shè)備的核心,微控制器開始受到各行業(yè)的廣泛應(yīng)用。而在微控制器中,STM8由于其穩(wěn)定性、性能和成功的應(yīng)用案例在市場上擁有較高的知名度,成為了許多物聯(lián)網(wǎng)設(shè)備的首選。

十載的賓陽網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整賓陽建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“賓陽網(wǎng)站設(shè)計(jì)”,“賓陽網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
然而,在STM8的開發(fā)環(huán)境中,由于其軟件相對較昂貴,許多開發(fā)者需要投入較大的開發(fā)成本。在這樣的情況下,許多開發(fā)者開始關(guān)注開源軟件的使用,并且開始在Linux系統(tǒng)下開展STM8的開發(fā)工作。
在本文中,我們將介紹在Linux系統(tǒng)下開發(fā)STM8的一般過程。
1. 準(zhǔn)備工作
在進(jìn)行STM8開發(fā)工作之前,我們需要準(zhǔn)備一些必要的工具和軟件,以支持我們進(jìn)行STM8的編程和調(diào)試工作。下面是我們需要準(zhǔn)備的工具和軟件列表:
1.1 針對STM8的編譯工具
在開發(fā)STM8的過程中,我們通常使用的編譯工具是IAR Embedded Workbench for STM8。但是這一軟件相對較昂貴,因此在Linux系統(tǒng)下我們可以使用開源編譯器SDCC。
1.2 調(diào)試工具
針對STM8的調(diào)試工具通常是ST-Link/V2,它可以幫助我們進(jìn)行編程和調(diào)試工作。在Linux系統(tǒng)下,可使用stlink命令行工具或者QTStlink軟件。
1.3 開發(fā)板
當(dāng)然,我們還需要一款STM8開發(fā)板,以進(jìn)行我們的開發(fā)和測試工作。
2. 安裝和配置SDCC
SDCC是一款基于開源的C語言編譯器,它支持許多處理器和MCU的開發(fā)和編譯工作。在開始STM8的開發(fā)工作之前,我們需要安裝SDCC的開發(fā)套件,在Linux下,安裝SDCC開發(fā)套件非常簡單。
我們可以通過如下命令,安裝SDCC開發(fā)套件:
$ sudo apt-get update
$ sudo apt-get install sdcc
安裝完成后,我們需要進(jìn)行SDCC的配置工作,使其支持STM8的編譯工作。我們需要執(zhí)行以下命令,進(jìn)入SDCC的配置文件目錄:
$ cd /etc/sdcc
$ sudo nano sdcc.conf
在配置文件中,我們需要添加如下代碼:
mcs51:
mcs51-gcc
stm8:
mcs51-gcc -DSDCC=1 -D__SDCC_STM8__ -DSTM8103
保存并退出配置文件?,F(xiàn)在,SDCC已經(jīng)被正確配置,并支持STM8的編譯工作了。
3. 使用SDCC開發(fā)STM8程序
在SDCC的開發(fā)中,我們可以使用任何文本編輯器進(jìn)行程序的編寫工作。在Linux系統(tǒng)下,我們可以使用vim、nano等文本編輯器進(jìn)行開發(fā)工作。
為了編寫我們的STM8程序,我們需要了解STM8芯片的數(shù)據(jù)手冊并研究它的引腳布局、寄存器和中斷表等內(nèi)容。
下面是一個(gè)簡單的STM8程序:LED 燈閃爍程序。
#include
/* 定義端口為P1.0的Led */
__it __at(0x90) LED;
void delay(void);
void mn(void)
{
/* 將P1.0設(shè)為輸出 */
LED = 0;
/* 進(jìn)入循環(huán) */
while(1)
{
/* LED 變亮 */
LED=1;
/* 延遲一段時(shí)間 */
delay();
/* LED變暗 */
LED = 0;
/* 延遲一段時(shí)間 */
delay();
}
}
/* 延遲函數(shù) */
void delay(void)
{
long int i;
/* 計(jì)數(shù)器初始值 */
i = 30000;
/* 計(jì)數(shù)器遞減 */
while (i–);
}
在編寫完STM8程序后,我們可以使用SDCC進(jìn)行編譯工作,使用以下命令可以進(jìn)行編譯:
$ sdcc -mstm8 -o test.hex test.c
編譯完成后,我們需要使用以上介紹的調(diào)試工具對程序進(jìn)行燒錄和調(diào)試工作。
4. 調(diào)試STM8程序
在Linux系統(tǒng)下,我們可以使用圖形界面工具QTStlink或者命令行工具stlink進(jìn)行STM8程序的調(diào)試工作。
4.1 使用QTStlink
QTStlink是一款可視化的STM8調(diào)試工具,它可以幫助我們進(jìn)行燒錄和調(diào)試STM8程序。在使用QTStlink之前,我們需要確保ST-Link/V2驅(qū)動(dòng)已成功安裝到系統(tǒng)中。
使用以下命令進(jìn)行QTSTlink的安裝:
$ sudo apt-get install qtstlink
安裝完成后,我們可以通過以下命令啟動(dòng)QTStlink:
$ qtstlink
啟動(dòng)后,在QTstlink程序的窗口中,我們可以進(jìn)行STM8程序的燒錄和調(diào)試工作。
4.2 使用stlink命令行工具
stlink是一款命令行工具,它可以幫助我們進(jìn)行STM8程序的編程和調(diào)試工作。在使用stlink之前,我們需要使用以下命令進(jìn)行安裝:
$ sudo apt-get install stlink-tools
安裝完成后,我們可以使用以下命令進(jìn)行STM8程序的編程和調(diào)試工作:
$ st-flash write test.hex 0x8000
以上命令將可使得STM8程序被成功燒錄到相應(yīng)的單片機(jī)中。
相關(guān)問題拓展閱讀:
- 有誰知道:stm32是用C編程好,還是C++編程好?如果用C++編程速度會(huì)不會(huì)變慢?
有誰知道:stm32是用C編程好,還是C++編程好?如果用C++編程速度會(huì)不會(huì)變慢?
目前主流還是C語言,但要多定義自己的旅廳咐
數(shù)據(jù)類型
,多用typedef 封裝各種相似數(shù)據(jù)。 一定要多用
自定義
結(jié)構(gòu)體類型與
枚舉類型
。 你看了STM32的3.4版或3.5版固件庫就知道了。C語言一伏此定要熟的,在Linux下,也是C為主。 當(dāng)然,C++擴(kuò)充了自定義的類型??梢杂胏lass對任意的對象封裝成一個(gè)自定義的類型拆純模板,然后用模板去建立與實(shí)物對應(yīng)的對象。 建議先學(xué)習(xí)Cortex-M3內(nèi)核,再用C語言寫外設(shè)程序,參考固件庫~
人有多大力就辦多大事”,STM32的功能遠(yuǎn)比51、AVR之類的單片機(jī)要強(qiáng)大得多,相對來說開發(fā)的產(chǎn)品功能比較大,代碼也會(huì)比較復(fù)雜。
首先有完整的框架是非常必須的,我個(gè)人認(rèn)為這里的框架有兩層,一個(gè)是在STM32上移植現(xiàn)有的操作賀渣系統(tǒng)或者一些穩(wěn)定的代叢猛碼框架,另外一個(gè)是自己的編程風(fēng)格。
你想很方便的開發(fā)相對復(fù)雜的東西,建議你首先在STM32上移植一個(gè)小型操作系統(tǒng)或一種框架,然后在操作系統(tǒng)之上編寫你自己的應(yīng)用去開發(fā)產(chǎn)品。在沒有操作系統(tǒng)或框架的情況下開發(fā)是非常麻煩的事情。要做到條理清晰的話,那就應(yīng)該去迎合操作系統(tǒng)或框架的風(fēng)格去編寫代碼,這答案并不唯一。 舉個(gè)簡單例子,現(xiàn)在比較熱門的STM32F103或STM32F407開發(fā)產(chǎn)品,一般會(huì)移植一個(gè)ucosii或rt-thread操作系統(tǒng)(當(dāng)然也有移植linux或android的,但我個(gè)人很少見),ucosii我沒實(shí)際開發(fā)過我就不說了,像rt-thread這樣的實(shí)時(shí)操作系統(tǒng),它具有多任務(wù)編程,那么我們就需要迎合它的特點(diǎn),比如我串口作為一個(gè)線程,LCD、LED掃描作為一個(gè)線程,數(shù)據(jù)采集作為一個(gè)線程,鍵盤掃描作為一個(gè)線程等等,在他們的線程中只各自做自己的事情,然后在增加一個(gè)頂層的線程專門來負(fù)責(zé)處理其他線程所產(chǎn)生的消息事件(或者給其他各線程發(fā)送消息事件),頂層的線程是作為一個(gè)中心處理線程來合理安排和處理其他各個(gè)線程的消息事件。
至于在這方面的提升,只能是通過實(shí)踐來達(dá)到效果,這里的“實(shí)踐”不是說要完全自己去摸索,你需要有東西來借鑒,因?yàn)楝F(xiàn)在一些操作系統(tǒng)、或框架、或編程風(fēng)格都是比較成熟,你直接拿來看,看看別人是怎么寫的代碼,然后禪鄭悄自己再去仿照著能不能寫的出來,再分析里面的優(yōu)缺點(diǎn)。你要是還在學(xué)校且資源有限,建議你可以花個(gè)幾百塊錢上淘寶買一個(gè)開發(fā)板,一般的開發(fā)板都有各個(gè)外設(shè)的實(shí)驗(yàn),以及綜合實(shí)驗(yàn),或許還會(huì)有操作系統(tǒng)或框架的移植和使用
想要明白棗肆這個(gè)問題,其實(shí)就需要明白STM8和STM32之間有些什么差異,包括MCU基本信息、開發(fā)難度、以及應(yīng)用場景等。
站在客觀的角度來說,STM8比STM32學(xué)起絕困來更容易,C語并巖念言功底還不錯(cuò)的朋友,直接上STM32也不是問題。
從大的方向來說,當(dāng)你對一種MCU掌握的比較透徹,再學(xué)其他型號、其他廠商的MCU,相對來說,上手都要容易的多。
不會(huì)慢,C++增加備亮了面象對象,C也能編程,問題是
現(xiàn)在的版本都是C++的了。C少,除非你知滾臘用老掉
牙搭滑的TURBO_C
用C會(huì)比較好一點(diǎn)吧,簡單一點(diǎn)吧!
關(guān)于stm8 linux的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。
網(wǎng)頁題目:STM8在Linux下的開發(fā)簡介(stm8linux)
本文鏈接:http://m.fisionsoft.com.cn/article/cdccgei.html


咨詢
建站咨詢
