{Eclipse IDE} Bắt đầu code với Makefile

I’m Vietnamese, if you don’t know Vietnamese, you can use google translate to read it

Sau gần 5 năm tiếp xúc với lĩnh vực điện tử, chìm đắm với việc layout, code, fix bug vi điều khiển, cái mà được mọi người gọi với cái tên lập trình nhúng, tôi chợt nhận ra có vài vấn đề “nho nhỏ” khi switch giữa các họ vi điều khiển. Cụ thể thì code trên STM8S, STM8L (Ứng dụng tiết kiệm pin) ta phải dùng IAR vì Keil C không support, STM32 thì lại chuộng Keil C hơn vì giao diện ổn và crack dễ hơn (thực tế thì lâu rồi cũng chả nhớ IAR có bản crack cho STM32 không nữa!!!!), qua với PIC thì lại MPLAB X, CCS, qua AVR thì lại Atmel Studio, Code vision AVR……, qua NXP, Silabs thì lại là những IDE khác nữa, túm lại, mỗi con MCU bạn lại phải cài và ngâm cách dùng ide của nó, việc này hơi tốn thời gian, mà bản chất vấn đề thì con mcu nào cũng ram, flash, gpio, spi… như vậy thôi, debug với nạp thì cũng chả khác mấy, đặc biệt là giờ ARM gần như thống lĩnh đống MCU rồi, khi mà con nào cũng lõi ARM cả. Vậy tại sao chúng ta không tìm kiếm một IDE cân tất, hoặc hiểu bản chất để “phản phác quy chân”? Một tool cho tất cả hoặc tất cả cho một tool.

Nghe cũng hay đấy, nhưng ta dùng crack quen rồi, tội gì phải switch nhỉ???

Ừ thì phải công nhận Keil C, IAR ngon thật, chúng ta có trong tay những IDE thương mại với khả năng tối ưu code tốt hơn GCC khoảng đâu đó 10-30% và không quan tâm đến makefile, gnu là gì. Tuy nhiên vấn đề lớn nhất của 2 thằng IDE này nó là mất phí (đúng thôi chứ người ta mất bao công làm ra IDE xịn thế cơ mà), học tập thì xài hàng crack chấp nhận được, chứ kiếm tiền rồi thì nên bỏ tiền ra mua hoặc tìm một giải pháp khác. Vấn đề thứ 2 là giao diện, trải nghiệm khi code trên 2 IDE bên trên thực sự tệ, với 1 project lớn, tôi thường phải code trên sublime text3 và quay lại build trên IDE vì thực sự khá đau mắt với UI của 2 thằng này (Keil C đỡ hơn tý). Đó là lý do make file kèm một trình soạn thảo văn bản miễn phí là giải pháp được tôi lựa chọn.

Ok, Bắt đầu đi.

Lượn một vòng tìm kiếm mấy cái IDE free, thì hiện nay có 2 trường phái chính, đó là VS Code và Eclipse

Download Visual Studio Code - Mac, Linux, Windows
Visual Studio Code (gọi tắt là VS Code)

Vs Code với giao diện dark mode ngầu lòi, đó là ide đầu tiên được chọn để thử nghiệm, tuy nhiên sau một thời gian, tôi cảm thấy Vs Code thiếu thiếu cái gì đó, kiểu như 1 cái nút để nạp, vài cái tab để debug, một vài nút để make… chẳng hạn (dĩ nhiên có thể cài thêm bằng platfrom IO và thêm cơ số thứ khác, hơi loằng ngoằng, chắc bài khác viết). Thế nên là tôi lại đi tìm… và tôi gặp em – Eclipse.

Thực tế thì tôi biết Eclipse khá sớm, nhưng khoảng 3 năm trước thì thú thật tôi hơi bị ức chế với nó, vì tâm thế của một thằng quen với IDE crack như IAR, Keil C ăn sẵn thì việc cấu hình cả một mớ tool thì thực sự quá ức chế, mà nó lại còn ko view biến live debug được nữa. Nên sau khi bế tắc với công cuộc tìm kiếm IDE free, Eclipse lại một lần nữa được gọi têm. Thật bất ngờ, 3 năm qua Eclispe đã thay đổi rất nhiều, ổn hơn, cài đặt dễ dàng, hỗ trợ nhúng tốt hơn, nhiều hãng sản xuất chip cũng lựa chọn core của Eclipse để build IDE của riêng họ, tuy nhiên, kèm theo đó là các bài tutorial copy paste nên khiến việc cài đặt loằng ngoằng, phức tạp hơn, đó cũng là lý do bài viết này ra đời.

Eclipse giờ đã trở nên rất tốt cho lập trình nhúng!

Eclipse hiện là nền của nhiều IDE thông dụng như CubeIDE, MCUXpresso IDE, LPCXpresso IDE, RT-Thread, Xilinx SDK….

Bắt đầu nào.

Để bắt đầu cài đặt, bạn không cần tải Eclipse rồi tải kèm 1 đống plugin Eclipse CDT như những hướng dẫn đâu đó trên mạng. Eclipse giờ đã có phiên bản dành riêng cho lập trình nhúng, do đó, chúng ta vào thẳng trang chủ eclipse tải file exe về

Tải trực tiếp từ trang chủ
Ta dược file eclipse exe như này

Tiến hành cài đặt với quyền admin nếu bạn muốn lưu nó ở ổ C, ta sẽ thấy lựa chọn cài đặt Eclispe IDE for Embedded C/C++

Cài thôi

Như vậy là xong, về cơ bản Eclipse đã có thể dùng được, các gói debug, cdt đã đi kèm

Cài Cywin thôi!

Do windows không hỗ trợ sẵn lệnh make, nên ta sẽ cần cài công cụ để make được, ở đây, tôi lựa chọn cywin. Các bạn tải cywin tại đây và làm theo hướng dẫn của phần mềm , chọn Install from Internet, chọn 1 link mirror bất kỳ và select package, nhớ lựa chọn make bằng cách nhập make vào cửa sổ search và tích chọn giải nén

ở đây là make 4.3

Next, next, next và chúng ta đã cài xong (phải đợi chút vì nó down hơi lâu) là done kèo như này

Tiếp đến ta tìm đến thư mục cài Cywin mà add nó vào PATH windows, việc này sẽ giúp Eclispe có thể tìm được đến file make để gọi, thường thì gói make ở chỗ này

Add đường dẫn này vào PATH của windows bằng cách vào Start Search (gói dưới cùng bên trái, hình kính lúp) gõ “env”, chọn “Edit the system environment variables”

Ảnh chụp màn hình của Start Search

Nhấp vào “Environment Variables..”

Screenshot of System Properties

Chọn Path, chọn Edit

Thêm đường dẫn cảu Cywin vào đây bằng cách chọn New, xong xuôi ta bấm OK các cửa sổ và thoát, sau đó mở command (Win + R, nhập cmd nhấn enter) để xem ta add thành công chưa, nhập “make -v” nếu hiện như hình tức là ta add thành công

Như vậy là add cywin để make xong, giờ ta add tool chain arm để build code

Cài GNU Arm Embedded Toolchain

Ta tải gnu arm tại đây và cài đặt theo hướng dẫn, nhớ tích chọn add path

tích chọn “Add path to env…”

Vì mình là một fan của Jlink nên mình sẽ cài thêm gói Jlink software và add path cho tiện debug

Tiến hành add path cho Jlink software

Thông thường, đường dẫn tới folder Jlink là “C:\Program Files\SEGGER\JLink”

vị trí của jlink software

Add em nó vào path windows

cywin, jlink, gnu đã được add

Như vậy là oke, giờ ta sẽ add thử một project make file vào và build thử xem ok chưa

Tôi sẽ thử với project này

Mở Eclipse, chọn workspace là thư mục chứa thư mục project, chọn File > Import > C/C++ > Existing Code as Makefile Project. Browse đến thư mục chứa project, tool chain chọn Arm Cross GCC, bấm Finish và ta đã import được project, quá đơn giản

Vào Project > Properties > C/C++ Build > Settings và đợi nó load, không cần làm gì cả, khi nó ra như hình thì Apply and Close

Sau đó chọn Project > Build all và ta có thể build code thành công

Tuy nhiên Eclipse chưa detec được 1 số thứ nên nó báo lỗi ngoại hình (không ảnh hưởng code), nhìn không đẹp mắt lắm nên ta cần sửa lại CDT GCC Build Output Parser thành như hình

Đổi CDT GCC Build Outpaser thành nội dung như bên dưới

(.*gcc)|(.*[gc]\+\+)(.*gcc)|(.*[gc]\+\+)

Việc này giúp cho GCC paser chuẩn xác hơn,hiện tại bạn đã có thể sử dụng eclipse, tạm thế đã, hẹn các bạn lần sau, dự là bài này sẽ chỉnh sửa thêm thắt nhiều

Cập nhật 26/08/2021 17h13 – Hà Nội đang trong chỉ thị 16, dãn cách phòng chống covid, đây là hướng dẫn debug trên eclipse với Jlink

Để bắt đầu debug, bạn vào Run > Debug Configurations

Double click vào GDB SEGGER J-Link Debugging

Eclipse sẽ load và tạo ra cấu hình debug như hình bên trên, chuyển qua tab Debugger, nếu đã add path cho Jlink từ lúc cài thì ta sẽ không cần chỉnh sửa gì ở đây

Chuyển qua tab Common, ta chọn share file và tick debug, run như hình

Cuối cùng, bấm Apply và bấm Debug để bắt đầu debug

Trong trường hợp nó vẫn ngáo chó, các bạn có thể add chay cái path của gdb vào đây

Sau đó ta được thành quả như sau

Giờ thì bắt đầu start stop debug thôi

Bình luận về bài viết này