Hiện tại thì do nhu cầu mình muốn dev STM32 trên MAC OS, tuy nhiên không tìm ra được cách để có thể xử lý được việc này. Sau một hồi tìm kiếm thì đã biết và xin share lại cho các bạn khi có nhu cầu cần dùng tới.

Việc cài đặt STM32CubeIDE trên window và linux khá đơn giản, tuy nhiên nếu bạn là người mới dùng MAC thì sẽ gặp hiện tượng cài mãi không được. Khá là ức chế. Trước khi cài đặt thì tìm hiểu qua 1 chút về STM32CubeIDE nhé mọi người

STM32CubeIDE là gì ?

STM32CubeIDE là một môi trường phát triển all-in-one, là một phần của hệ sinh thái phần mềm STM32Cube, ý tưởng của STM32Cube là nó bao gồm nhiều “Khối” (Cube), chẳng hạn như cấu hình ngoại vi, tạo mã, biên dịch mã và gỡ lỗi, vv, để tạo thành một khối lớn hơn, nếu bạn biết cách hoạt động của mỗi khối, thì bạn sẽ có một môi trường phát triển đầy sức mạnh theo ý của mình. Điều này được giả định rằng bạn biết rõ từng phần, nhưng nếu bạn chưa quen với môi trường phát triển và chuỗi công cụ của ST, bạn có thể gặp một khối Rubik lộn xộn và bạn sẽ không biết bắt đầu từ đâu để giải khối Rubik này.

Nói nôm na thì STM32CubeIDE là một IDE tương đối mới và dựa trên Eclipse và CDT (C/C ++ Development Tools) framework, cộng với GCC toolchains và GDB để gỡ lỗi. STM32CubeIDE tích hợp cấu hình STM32 và các chức năng tạo dự án từ STM32CubeMX trước đây và editor từ Atollic TrueStudio (tương tự như System Workbench) mà ST đã mua lại vào năm 2018. Đúng là cá lớn nuốt cá bé mà.

Trước năm 2019, nếu bạn đang develop STM32, thì ST sử dụng tất cả các loại môi trường phát triển với nhiều loại IDE khác nhau, bạn sẽ thấy rằng đôi khi họ sử dụng mbed, Keil, System Workbench hoặc Atollic TrueStudio trong các hướng dẫn của họ trên website, vì vậy Internet đã có quá nhiều hướng dẫn cũ hoặc có hướng dẫn nhưng không có gì nhiều với thằng STM32CubeIDE này. Về phương diện cá nhân mình thì rất ghét những thứ liên quan tới Eclipse vì nó quá nặng, tuy nhiên không thể phủ nhận rằng nó rất hữu dụng đối với những người mới bắt đầu mà không cần phải cài quá nhiều thứ cũng như cấu hình lằng nhằng để có thể code được một ứng dụng cụ thể.

Cài đặt STM32CubeIDE

Mặc dù STM32CubeIDE là miễn phí, nhưng ST muốn bạn truy cập trang web của họ, đăng ký email để tải nó, bạn có thể tải ở link sau đây https://www.st.com/en/development-tools/stm32cubeide.html, chọn phiên bản tương thích với hệ điều hành của bạn. Việc đăng ký này tuy có hơi tốn sức tí nhưng không sao, có nhiều tài liệu cũng yêu cầu đăng ký và đăng nhập để có thể tải được.

STM32CubeIDE về cơ bản là ứng dụng dựa trên Java (như Eclipse), vì vậy nó có thể chạy trên các nền tảng Windows, MacOS và Linux. Với trường hợp mình đang bí chỗ MacOS, vì vậy các quy trình cài đặt trong bài viết này sẽ dựa trên MacOS (tương tự với Linux).

Sau khi tải về và giải nén ra sẽ có một file , st-stm32cubeide_xxx.dmg như phiên bản hiện tại. Bạn cần cài đặt theo 2 bước sau.

Bước 1: Cài đặt ST-LINK server

Để bạn có thể nạp được file bin vào trong chip thì cần phải cài ST-Link Server, bạn có thể thấy hình dưới nó sẽ có thông báo install me 1st, nếu lỡ quên thì bạn có thể tải nó với link sau

https://www.st.com/en/development-tools/st-link-server.html

Bước 2 chỉnh setting, bước này quan trọng, do bên MACOS có mấy software không được trust(không được cài từ appstore) là khỏi chạy, mình ko rành cái này lắm nên mò mãi mới ra.

Mở System Preferences -> Security& Privacy, chọn vào biểu tương ổ khóa để cho phép cài đặt st-stlink-server.

Sau đó cài đặt STM32CubeIDE, bạn chỉ cần kéo và thả biểu tượng IDE vào thư mục Ứng dụng để hoàn tất quá trình cài đặt STM32CubeIDE. Nếu bạn chạy STM32CubeIDE ngay bây giờ, bạn sẽ gặp lỗi thông báo rằng STM32CubeIDE bị hỏng và không thể mở được. Thực ra không có gì sai với STM32CubeIDE, chỉ là MacOS đưa ứng dụng vào trạng thái cách ly, giống như trường hợp ở trên với ST-LINK Server vì ứng dụng được tải xuống từ Internet thay vì qua Apple App Store.

MacOS quarantine on STM32CubeIDE

Bạn có thể chạy lệnh sau để đưa STM32CubeIDE khỏi trạng thái cách ly covid 19

sudo xattr -dr com.apple.quarantine /Applications/STM32CubeIDE.app/

If you are familiar with Eclipse development environment, you will find STM32CubeIDE familiar and easier to use. If you are new to Eclipse-based development envrionment, it might take some time to get used to it and there will be some learning curve.

Khi STM32CubeIDE đang chạy lần đầu tiên, nó yêu cầu tạo không gian làm việc, theo mặc định, nó đề xuất tạo không gian làm việc tại ~/STM32CubeIDE/workspace_1.x.x, nó cũng tạo thư mục STM32Cube chiếm 300MB + bộ nhớ để lưu trữ tất cả firmware, middleware và libraries mà bạn sẽ cần để phát triển STM32. Nói chung, bạn không cần phải làm bất cứ thứ gì hoặc tương tác với thư mục STM32Cube, nhưng tôi khuyên bạn nên vào trong các thư mục và đọc file pdf trong “Getting started with STM32Cube IDE”.

Nếu bạn đã quen với môi trường phát triển Eclipse, bạn sẽ thấy STM32CubeIDE chẳng khác gì, rất quen thuộc và dễ sử dụng. Nếu bạn chưa quen với môi trường phát triển dựa trên Eclipse, có thể mất mấy chục phút để làm quen với nó và sẽ có một số kiến thức cơ bản cần phải biết, quan trọng nhất là bạn dám mò mẫm, thế thôi.

Có tài liệu UM2609 STM32CubeIDE User Manual, ngoài ra ST còn có serie YouTube STM33CubeIDE basics để chúng ta có thể tham khảo, bạn có thể xem nó để biết thêm một số từ tiếng anh chuyên ngành, cũng như luyện thêm skill tiếng anh cho mình, khá đơn giản và dễ nghe, chỉ có nhược điểm là những kit trên hiện không sẵn có cho mình nên mình chỉ xem hiểu cách làm của họ thôi, mình nghĩ nó rất hữu ích để bắt đầu với HAL library và cấu hình Peripheral.

Trong trường hợp bình thường, những gì được mô tả ở trên là đủ để bạn bắt đầu và cung cấp cho bạn những gì bạn cần để dev STM32. Tuy nhiên, sẽ có lúc MCU hoặc board (ví dụ: ST Discovery Board hoặc Nucleo Board) mà bạn đang dùng cần có yêu cầu một số phần mềm trung gian(middleware) hoặc gói mở rộng, khi đó bạn sẽ cần cài đặt hoặc import gói mở rộng đó. Ví dụ bạn khi bạn sử dụng bộ STM32 LoRa Discovery thì kiểu gì mà chẳng dính.(bộ này mình cũng ko có nên tạm bỏ qua nhá)

Kết

Vậy là các bạn có thể cài được môi trường development STM32 trên MAC OS rồi, giờ thì các bạn có thể dev vài đường cơ bản để kiểm tra phần mềm, các chức năng build, flash và kiểm tra thành quả ban đầu thôi.

Mọi người có thể tham khảo bài viết dưới đây của mình

Hướng dẫn sử dụng STM32CubeIDE | Học ARM
Sau khi làm kế hoạch thâu tóm anh TrueSTUDIO và AC6 SW [/lap-trinh-stm32-tren-linux-voi-systemworkbench/] thì anh ST thấy có vẻ như nhiều tool quá, khách hàng người dùng cũng chóng mặt, IDE thì lắm mà AC6 thì tuổi gì sánh được với TrueSTUDIO, thêm vào nữa con hàng CubeMX thơm ngon béo bở gen code nh…

Các tài liệu hữu ích từ ST bonus cho mọi người tham khảo

User Manual – UM2609 STM32CubeIDE User Manual
User Manual – UM2073 STM32 LoRa Expansion Package for STM32Cube
User Manual – UM2115 Discovery kit for LoRaWAN, Sigfox, and LPWAN protocols with STM32L0
Application Note – AN4967 Examples of AT commands on I-CUBE-LRWAN

Tham khảo

[1]