Isi kandungan:

Mula Membangunkan STM32 di Linux: 4 Langkah
Mula Membangunkan STM32 di Linux: 4 Langkah

Video: Mula Membangunkan STM32 di Linux: 4 Langkah

Video: Mula Membangunkan STM32 di Linux: 4 Langkah
Video: Программирование STM32 Blue Pill с помощью релейной логики ПЛК LDmicro 2024, Julai
Anonim
Image
Image
Muat turun Semua yang Anda Perlu
Muat turun Semua yang Anda Perlu

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

Memasang Perisian
Memasang Perisian
Memasang Perisian
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:

  1. Masuk ke folder rumah anda "/ home / YOURUSERNAME /" atau "~ /" atau taip cd ke terminal
  2. buka fail ".bashrc" dengan menaip: nano.bashrc
  3. tatal ke bawah ke hujung fail dan tambahkan baris ini: eksport PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
  4. keluar dengan menyimpan: CTRL + X, klik Y, ENTER
  5. jalankan perintah: sumber.bashrc untuk memuat semula sumber terminal
  6. 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:

  1. Lari: buat
  2. Masuk ke folder "build / Release": cd build / Release
  3. Ketik ls dan anda akan melihat dua eksekusi yang disebut "st-flash" dan "st-util"
  4. Pindahkan keduanya ke stlink direktori induk: mv st-flash st-util../../
  5. 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

Menyiapkan Contoh Projek
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

Selesai!
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: