Tôi có một bảng khám phá STM32 và muốn có thể lập trình nó trên Linux.
cách dễ nhất để làm điều này là gì?
Tôi có một bảng khám phá STM32 và muốn có thể lập trình nó trên Linux.
cách dễ nhất để làm điều này là gì?
Câu trả lời:
Một cách dễ dàng để lập trình và gỡ lỗi bảng STM32 Discovery (hoặc bất kỳ STM32 nào sử dụng trình lập trình ST-Link) là sử dụng dự án 'stlink' https://github.com/texane/stlink (tuy nhiên OpenOCD cũng có vẻ phổ biến)
Bảng ST Nucleo cũng xuất hiện dưới dạng thiết bị flash USB, do đó, thậm chí không cần stlink
- chỉ cần sao chép tệp qua chúng.
Có một số trang hay về cách phát triển để phát hiện STM32 trên Linux, chẳng hạn như http://gpio.kaltpost.de/?page_id=131 và http://torrentula.to.funpic.de/2012/03/22/ thiết lập-up-the-stm32f4-arm-Development-toolchain / và http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
Tuy nhiên tôi tìm thấy liên kết cuối cùng hữu ích nhất. Nó cho thấy cách xây dựng các dự án STM32 của ST như hiện tại - Thay đổi duy nhất là thêm Makefile của anh ấy, có vẻ như là một giải pháp hoàn hảo.
Trên các phiên bản gần đây của Ubuntu, có một gói bạn có thể cài đặt chứa trình biên dịch ARM:
sudo apt-get install gcc-arm-none-eabi
Lưu ý rằng tất cả các bộ xử lý là một chút khác nhau. STM32F0..4 tất cả sẽ cần các cờ trình biên dịch khác nhau và tập lệnh liên kết sẽ hơi khác nhau cho mỗi (mặc dù chỉ thực sự do kích thước RAM và Flash thay đổi).
Chỉnh sửa: nếu bạn muốn bắt đầu thực sự nhanh chóng, bạn cũng có thể xem tại http://www.espruino.com . Đó là trình thông dịch JavaScript chạy trên chính STM32, vì vậy khi bạn đã cài đặt 'stlink' để bạn có thể flash vào bảng, bạn có thể tải xuống một hình ảnh từ trang web đó, flash nó và sau đó kết nối với một ứng dụng đầu cuối và bắt đầu lập trình.
Nếu bạn thích dùng trình soạn thảo văn bản và Makefiles thay vì sử dụng GUI, bạn có thể làm:
Nhận dự án của bạn để hội đồng quản trị. Hoặc là sử dụng
Mã trong trình soạn thảo văn bản và sử dụng các công cụ dòng lệnh. Hướng dẫn này sẽ cung cấp rất nhiều lời khuyên.
Thưởng thức
Eclipse , GCC và OpenOCD là một chuỗi công cụ. Đó là khuyến nghị của EMCU-IT và có thêm thông tin ở đây . Các trang đó cũng khuyên bạn nên sử dụng RTOS như FreeRTOS.org , nhưng điều đó tùy thuộc vào bạn.
Và để được trợ giúp biên dịch các ví dụ STM32 trong Linux, hãy vào đây . Liên kết đó trỏ đến một tệp thực hiện cho các ví dụ có thể được gọi với
git clone git://github.com/snowcap-electronics/stm32-examples.git
cd stm32-examples
wget http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip
unzip stm32_f105-07_f2xx_usb-host-device_lib.zip
Một vài sửa lỗi mã nhỏ cũng được ghi lại, nhưng hầu hết các dự án nên làm việc với
make CROSS_COMPILE=/path/to/arm-2011.03/bin/arm-none-eabi-
Tôi đã thành công với https://github.com/JorgeAparicio/bareCortexM (xem thêm các bài đăng trên blog được liên kết). Tôi tin rằng tôi chỉ có thể đơn giản bước qua mã hoặc duyệt bộ nhớ thiết bị thay vì chèn các câu lệnh gỡ lỗi trong mã của mình hoặc đoán những gì đang xảy ra bên trong chip.
Dự án BareCortexM là một mẫu Eclipse để phát triển với dòng Cortex M, đặc biệt là STM32, trong C ++ không có HĐH. Nó được cấu hình để sử dụng openocd, gcc và có các tập lệnh để flash và gỡ lỗi cho một số mục tiêu bao gồm một số bảng khám phá. Bằng cách làm theo các hướng dẫn và cài đặt các trình cắm Eclipse được đề xuất, tôi đã có thể sử dụng STM32VLDISCOVERY của mình trên Ubuntu.
Theo khuyến cáo, tôi đã kết hợp mẫu nhật thực với thư viện mẫu libstm32pp C ++ của cùng tác giả cho phần cứng STM32. libstm32pp cung cấp một sự thay thế hoàn toàn đáng ngạc nhiên cho CMSIS và các trình điều khiển STM32 thường bị chỉ trích với một mô hình lập trình cho phép bạn nói những điều như PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
và PINB::setLow()
hoặc PINB::setHigh()
tất cả được biên dịch nội tuyến chủ yếu do các mẫu C ++. Các thiết lập là rất tốt đẹp.
Có lẽ nó sẽ hữu ích cho ai đó: bài viết ngắn của tôi (về tiếng Nga) và dự án đơn giản . Tất cả trong linux và không có những thứ không cần thiết như nhật thực.
Các thư viện được lấy từ trang web ST, makefile - từ một trong nhiều ví dụ về GPL trên internet.
Đây là một dự án mẫu nhỏ nhưng sáng tạo để bắt đầu nhanh bằng cách sử dụng bảng STM32F0 Discovery trong Linux hoặc bất kỳ HĐH nào khác:
https://github.com/dobromyslov/stm32f0-chibios-template
Lưu ý rằng dự án sử dụng ChibiOS - một hệ điều hành thời gian thực nguồn mở và miễn phí, do đó, đây không hẳn là một triển khai xương cốt từ đầu.
Hãy xem xét platformio . Nếu bạn hoàn toàn thoải mái với dòng lệnh, bạn sẽ thấy rằng platformio làm giảm đáng kể quá trình phát triển. pio init
có thể được sử dụng để thiết lập một dự án. pio run
tận dụng chuỗi công cụ để biên dịch. pio run --target upload
gửi mã đến thiết bị. Platformio chăm sóc tải xuống các thành phần toolchain, thư viện, vv khi cần thiết.