Isi kandungan:
- Langkah 1: Muat turun Semua yang Anda Perlu
- Langkah 2: Memasang Perisian
- Langkah 3: Menyiapkan Contoh Projek
- Langkah 4: Selesai
Video: Mula Membangunkan STM32 di Linux: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Dalam Instructable ini, saya akan menunjukkan kepada anda betapa mudahnya memulakan program STM32 di Linux. Saya mula menggunakan Linux sebagai mesin utama saya 2 tahun yang lalu dan tidak dikecewakan. Semuanya berfungsi lebih pantas dan lebih baik daripada tingkap. Sudah tentu kurang senang dari semasa ke semasa, tetapi memaksa anda untuk mempelajari sesuatu dengan lebih mendalam sehingga anda dapat menggunakannya.
Bagaimanapun, dalam arahan ini, sebahagian daripada siri yang saya mulakan di sini DAN di youtube adalah mengenai cara memulakannya. Pastikan juga menonton video youtube saya di mana saya menerangkan semuanya sebagai satu segmen dan anda boleh membuat kod di sebelah saya.
Dalam siri ini saya akan menunjukkan kepada anda bagaimana anda dapat mengembangkan hanya menggunakan editor teks seperti notepad, SublimeText atau Atom, jadi anda tidak memerlukan perisian atau IDE proprietari. Ini seperti tulang kosong dan sangat mudah.
Langkah 1: Muat turun Semua yang Anda Perlu
Anda perlu memuat turun tiga bahagian agar semuanya berfungsi:
- Penyusun GCC untuk ARM
- Fail firmware STM32
- Utiliti St-link
- Projek Contoh
Compiler adalah perisian utama yang menyusun kod C kami dengan semua fail perpustakaan lain ke dalam bahasa mesin yang dapat difahami oleh pengawal stm32 kami. Muat turun versi kompilator pra-kompilasi terbaru ini.
Folder yang mengandungi firmware STM32 adalah folder yang menyimpan semua fail permulaan dan teras yang diperlukan untuk operasi pemproses utama. Kami akan menggunakan Perpustakaan Periferal Standard yang telah dilampaui oleh HAL. Saya lebih suka StPeriphLibrary kerana syarikat yang menggunakan pemproses ini menggunakannya kerana syarikat ini kuat dan lebih tua dan disokong. Ia juga lebih lasak. Ini tidak memotong kerja yang harus anda lakukan untuk menginisialisasi periferal atau menyalakan LED tetapi, sehingga memaksa anda untuk belajar bagaimana prosesor ini berfungsi. Dengan itu anda mempunyai lebih banyak pengetahuan tentang kerja dalaman sehingga masuk akal untuk memprogram setiap tugas.
Perisian terakhir untuk dimuat turun adalah utiliti st-link. Ia disimpan di github dan digunakan untuk memindahkan fail binari yang dikompilasi ke pemproses menggunakan stlink IC di papan berfungsi sebagai pengaturcara / debugger SWD / JTAG.
Saya juga telah memberikan contoh folder projek yang akan saya bicarakan kemudian dan anda boleh memuat turunnya. Ia berada di dalam folder VIDEO1 pertama.
Langkah 2: Memasang Perisian
Setelah anda memuat turun semua fail, saya cadangkan anda memasukkannya ke dalam folder biasa kerana semuanya digunakan bersama untuk tujuan yang sama. Saya meletakkan semua folder di dalam folder bernama "Embedded" dalam direktori HOME saya.
Kami akan mulakan dengan perpustakaan STM32 yang paling mudah. Folder yang anda muat turun boleh ditinggalkan di sana. Cukup pastikan untuk menggali untuk melihat di mana fail yang sesuai disimpan. Oleh itu, anda boleh mengubah dan mengedit MakeFile utama supaya berfungsi dengan platform anda.
Paling mudah kedua adalah penyusun. Anda juga tidak perlu melakukan apa-apa, tetapi kami akan menjadikan penyusun fungsi yang dapat diakses secara global sehingga anda dapat memanggil penyusun dari folder mana pun tanpa mengira jalannya. Semua langkah boleh dilakukan di terminal atau gui, tetapi saya suka menggunakan terminal kerana apabila anda berpengalaman ia akan menjadi lebih cepat dan mudah dan saya mendorong anda untuk menggunakan terminal lebih banyak, jika anda takut dengannya. Berikut adalah langkah-langkahnya:
- Masuk ke folder rumah anda "/ home / YOURUSERNAME /" atau "~ /" atau taip cd ke terminal
- buka fail ".bashrc" dengan menaip: nano.bashrc
- tatal ke bawah ke hujung fail dan tambahkan baris ini: eksport PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
- keluar dengan menyimpan: CTRL + X, klik Y, ENTER
- jalankan perintah: sumber.bashrc untuk memuat semula sumber terminal
- periksa sama ada semuanya berfungsi dengan menaip: arm-none-eabi-gcc --versi, ia harus memaparkan versi penyusun terbaru
Untuk memasang st-link, ekstrak arkib yang telah anda muat turun ke folder Embedded. Kemudian ikuti langkah berikut:
- Lari: buat
- Masuk ke folder "build / Release": cd build / Release
- Ketik ls dan anda akan melihat dua eksekusi yang disebut "st-flash" dan "st-util"
- Pindahkan keduanya ke stlink direktori induk: mv st-flash st-util../../
-
Anda boleh, jika anda ingin menggunakan kedua fungsi ini secara global mengedit fail ".bashrc" dengan menambahkan:
eksport PATH = $ PATH: ~ / Terbenam / stlink /
Itu sahaja! Anda mempunyai semua yang anda perlukan. Sekarang, ambil penyunting teks kegemaran anda. Gunakan hanya yang standard, yang lebih bijak seperti SublimeText atau Atom, itulah yang saya gunakan.
Langkah 3: Menyiapkan Contoh Projek
Kami sekarang akan membuat contoh projek yang boleh anda gunakan untuk memulakan setiap projek. Ia seperti templat dengan semua tetapan utama sudah dikendalikan.
Anda boleh memuat turunnya di MEGA saya, pautan ada pada langkah pertama arahan ini dan di bawah setiap video youtube saya. Di dalamnya terdapat fail main.c yang kosong bersama dengan beberapa fail permulaan untuk pemproses ini dan Makefile. Makefile adalah yang memberitahu penyusun C di mana untuk mencari penyusun lengan, bagaimana menyusun dan di mana semua perpustakaan. Untuk mendapatkan fail yang sesuai untuk projek anda, anda boleh masuk ke folder perpustakaan STM32 dan memeriksa folder "projek" atau "contoh". Di dalamnya anda akan melihat dan menyalin fail-fail ini: main.c, Makefile dan XXX_conf.h, system_XXX.c. Juga anda memerlukan fail pemaut stm32_flash.ld yang boleh didapati dalam folder:
"/ FLASH_Program / TrueSTUDIO / FLASH_Program /" yang ada di dalam folder contoh atau hanya cari fail.
Makefile boleh didapati dalam talian atau disalin dari folder saya, tetapi anda perlu mengubah beberapa perkara. Mari kita lihat fail pembuatan saya dan apa yang boleh anda ubah.
# Jalan ke folder stlink untuk memuat naik kod ke papan
STLINK = ~ / Embedded / stlink # Letakkan fail sumber anda di sini (*.c) SRCS = main.c system_stm32f4xx.c # Fail sumber perpustakaan #SRCS + = stm32f4xx_rcc.c #SRCS + = stm32f4xx_gpio.c # Binari akan dihasilkan dengan nama ini (.elf,.bin,.hex) PROJ_NAME = test # Masukkan direktori kod perpustakaan STM32F4 anda di sini, ubah nama pengguna anda menjadi STM_COMMON = / home / matej / Embedded / STM32F4-Discovery_FW_V1.1.0 # Tetapan kompiler. Hanya edit CFLAGS untuk memasukkan fail tajuk lain. CC = arm-none-eabi-gcc OBJCOPY = arm-none-eabi-objcopy # Compiler flags CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS + = -DUSE_STDPERIPH_DRIVER CFLAGS + = -mlittle-endian -mthumb -mcpu = korteks-m4 -mthumb-interwork CFLAGS + = -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS + = -I. # Sertakan fail dari perpustakaan STM CFLAGS + = -I $ (STM_COMMON) / Perpustakaan / CMSIS / Sertakan CFLAGS + = -I $ (STM_COMMON) / Perpustakaan / CMSIS / ST / STM32F4xx / Sertakan CFLAGS + = -I $ (STM_COMMON) / Perpustakaan / STM32F4xx_StdPeriph_Driver / inc CFLAGS + = -I $ (STM_COMMON) / Utilities / STM32F4-Discovery # tambahkan fail permulaan untuk membina SRCS + = $ (STM_COMMON) / Perpustakaan / CMSIS / ST / STM32F4xx / True / Templates / Sumber s OBJS = $ (SRCS:.c =.o) vpath%.c $ (STM_COMMON) / Perpustakaan / STM32F4xx_StdPeriph_Driver / src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME).elf: $ (SRCS) $ (CC) $ (CFLAGS) $ ^ -o $ @ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binary $ (PROJ_NAME).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash the STM32F4 burn: proj $ (STLINK) / st-flash tulis $ (PROJ_NAME).bin 0x80000000
- Anda boleh mengedit baris pertama untuk menukar jalan ke folder utiliti stlink anda
- Anda boleh menukar baris ke destinasi folder anda dengan perpustakaan dan nama pengguna anda
STM_COMMON = / rumah / NAMA PENGGUNA / Tertanam / STM32F4-Penemuan_FW_V1.1.0
- Lihat juga bahagian di mana semua perpustakaan dihubungkan. Ini boleh berubah bergantung pada platform yang anda gunakan, jadi periksa perubahan pada struktur fail. Yang lain yang merangkumi jalan ke fail tertentu, seperti baris seterusnya dengan fail permulaan boleh diubah.
Setelah anda mengedit semua perkara ini di dalam Makefile, anda dapat memeriksa apakah ia berfungsi dengan membuka terminal di dalam direktori anda dan menaip: make. Sekiranya menyusun setiap perkara tanpa masalah, maka anda sudah siap. Sekiranya tidak, lihat kesalahan penyusun dan edit Makefile.
Semasa saya menggunakan Atom, saya meletakkan dua bahagian kod secara bersebelahan. Biasanya main.c dan Makefile di sebelah kiri kerana anda hanya perlu mengedit Makefile sekali dan perpustakaan di sebelah kanan. Anda dapat melihat pada gambar bahawa saya telah membuka folder yang mengandungi fail.c dan.h untuk setiap perpustakaan. Anda dapat melihat semua ini dalam video.
Langkah 4: Selesai
Setelah membuat konfigurasi dan penyusun Makefile berfungsi, anda boleh menggunakan folder ini untuk semua projek sebagai templat, jadi pastikan anda menyimpan salinan folder ini.
Anda juga boleh menguji program st-flash dan st-info dengan memasukkan papan pengembangan anda dan menaip ke terminal:
st-maklumat --probe
Anda dapat melihat platform yang dikenali oleh perisian stlink dan keluarga IC bersama dengan cache dan lain-lain. Anda boleh menaip:
st-maklumat
untuk melihat semua parameter yang ada.
Sekarang anda boleh memulakan pengaturcaraan. Dalam arahan dan video seterusnya, saya akan menunjukkan kepada anda asas-asas GPIO dan jam. Kedua-duanya adalah asas untuk semua yang lain kerana hampir semua yang berinteraksi dewan adalah lebih daripada GPIO dan semuanya berfungsi mengikut masa dan anda akan melihat corak pengaturcaraan pemproses ini.
Sehingga itu, terima kasih telah melihat video arahan dan video youtube saya, jika anda belum melakukannya.
Disyorkan:
Merancang dan Membangunkan Talian Kuasa untuk Pengecas Telefon Android: 5 Langkah
Merancang dan Membuat Penapis Talian Daya untuk Pengecas Telefon Android: Dalam Instruksional ini, saya akan menunjukkan cara mengambil kabel USB mini ke USB standard, memisahkannya di tengah dan memasukkan litar penapis yang akan mengurangkan kebisingan yang berlebihan atau hash dihasilkan oleh bekalan kuasa android biasa. Saya mempunyai m
Pengimpal Tempat Mudah Menggunakan Bateri Kereta untuk Membangunkan Bateri Lithium Ion: 6 Langkah
Pengimpal Tempat Sederhana Menggunakan Bateri Kereta untuk Membangunkan Bateri Lithium Ion: Inilah cara saya membuat pengimpal Spot dengan bateri kereta yang berguna untuk membina Pek Bateri Lithium Ion (Li-ion). Saya telah berjaya membina 3S10P Pack dan banyak pengelasan dengan spot welder ini. Spot Welder yang diarahkan merangkumi, Functional Block Dia
Cara Membangunkan Baling-Baling Kereta: 7 Langkah
Cara Membuat Kereta Baling-Baling: Ini adalah cara membuat kereta baling-baling yang mudah di rumah yang boleh anda buat sendiri. Kami mempunyai tutorial video mengenai cara membuat kereta baling-baling di YouTube. Selepas anda membuat kereta sendiri, kongsi di media sosial dengan #HomeMakeKit supaya kami dapat melihat bagaimana saya
Tutorial: Cara Membangunkan Modul Sensor Ranging Laser VL53L0X dengan Menggunakan Arduino UNO: 3 Langkah
Tutorial: Cara Membangun Modul Sensor Ranging Laser VL53L0X dengan Menggunakan Arduino UNO: Penerangan: Tutorial ini akan menunjukkan kepada anda semua secara terperinci mengenai cara membina pengesan jarak dengan menggunakan Modul Sensor Ranging Laser VL53L0X Dan Arduino UNO dan ia akan berjalan seperti anda mahu. Ikuti arahan dan anda akan memahami tutor ini
Membangunkan Distribusi GNU / Linux untuk Raspberry Pi Menggunakan Projek Yocto: 6 Langkah
Membangunkan Distribusi GNU / Linux untuk Raspberry Pi Menggunakan Projek Yocto: Raspberry Pi mungkin merupakan komputer papan tunggal kos rendah yang paling popular di pasaran. Ia sering digunakan untuk Internet of Things dan projek terbenam lain. Beberapa pengedaran GNU / Linux mempunyai sokongan yang sangat baik untuk Raspberry Pi dan bahkan terdapat Mi