Thảo luận Lập trình STM32 với GCC

huunho

Thạc sỹ
#3
bạn sử dụng GCC cho stm32 rồi , vậy bạn so sánh với keil c thì có ưu nhược điểm gì?
1. Vấn đề bản quền?
2. Kích thước file hex sinh ra để nạp vào STM32 lớn hay nhỏ hơn so với keil c?
3. Có khả năng debug như keil không?
cám ơn bạn
 

NgoHungCuong

http://ngohungcuong.com
#4
1. Vấn đề bản quền?
GCC miễn phí, MDK có nhiều loại bản quyền, hiện tại hình như cũng đang có chương trình miễn phí do ST: khi sử dụng STM32F0...
2. Kích thước file hex sinh ra để nạp vào STM32 lớn hay nhỏ hơn so với keil c?
Mình không quan tâm đến vấn đề này
3. Có khả năng debug như keil không?
Mình không quan tâm đến debug bằng kiểu này và cũng chưa bao giờ debug trên MDK.
 

huunho

Thạc sỹ
#5
GCC miễn phí, MDK có nhiều loại bản quyền, hiện tại hình như cũng đang có chương trình miễn phí do ST: khi sử dụng STM32F0...

Mình không quan tâm đến vấn đề này

Mình không quan tâm đến debug bằng kiểu này và cũng chưa bao giờ debug trên MDK.
vậy điều gì khiến bạn thích GCC nhất? và bạn quan tâm tới các nhân tố gì của GCC?
 

damme50_vn

Học sinh trung cấp
#6
GCC miễn phí, MDK có nhiều loại bản quyền, hiện tại hình như cũng đang có chương trình miễn phí do ST: khi sử dụng STM32F0...

Mình không quan tâm đến vấn đề này

Mình không quan tâm đến debug bằng kiểu này và cũng chưa bao giờ debug trên MDK.
anh có hay debug không anh, em thích nó nhưng bên mô phỏng thôi :(
 

NgoHungCuong

http://ngohungcuong.com
#8
vậy điều gì khiến bạn thích GCC nhất? và bạn quan tâm tới các nhân tố gì của GCC?
Dành cho những người thích phần mềm tự do và/hoặc không đủ tiền mua MDK hay IAR...và các lý do khác...
 

mbed

Kỹ sư
#9
Ủng hộ tinh thần GNU,từ lâu khi biết STM32 mình chỉ dùng GCC trên IDE Eclipse.
Ưu điễm của GCC, là sử dụng cho hầu hết các dòng mcu khac nhau (AVR sử dụng) mà free. IDE eclipse thuận tiện ,miển phí, dễ tích hợp các trình biên dịch khác vào.
Trên eclipse mình tích GCC biên dịch cho STM32, SDCC biên dịch cho STM8, Java để viết giao diện ứng dụng UART giao tiếp với mcu, Androi MDK viết ứng dụng gío tiếp Điện thoại với mcu thông qua Bluetooth.... Rất nhiều công việc cho nhà phát triển có thể làm được trên một IDE mà không cần cài đặt mỗi IDE cho dòng chíp, mỗi dự án.
Phát triển trên eclipse có debug được bằng OpenOCD .
Về dung lượng file .hex hay .bin build ra không lo ngại đối với các dòng ARM hiện nay, Flash ROM xài thoải mái. GCC free nên tối ưu bộ nhớ không ngon bằng các trình biên dịch thương mại, nhưng không vấn đề gì, giải quyết vấn đề này bằng cách tối ưu code của bộ thư viện ,chỉ biên dịch những code gì mình cần.
Chẳn hạn ở GNU SDCC :lúc biên dịch cho STM8S003 ,trong ứng dụng có sử dụng bộ thư viện chuẩn :TIM1 để đo tốc độ động cơ, TIM2 phát xung PWM, UART2 buffer interupt hiển thị thông tin lên máy tính, GPIO cho LED.Nếu để nguyên thư viện TIM1 thì SDCC biên dịch ra file *.hex quá lớn,(*.bin thì nhẹ hơn), không nạp được cho STM8S003.
Tối ưu hoá code bằng cách mở file thư viện TIM1 lên ,chuyển các đoạn code không sử dụng thành ghi chú, chỉ để lại code nào chương trình đang dùng, hoặc tốt nhất là sử dụng code tác động trực tiếp thanh ghi.Các file thư viện khác củng làm như thế, biên dịch ra được file nạp nhẹ.
Bình thường khi biên dịch ở cấu hình debug(bất cứ tất cả các trình biên dịch nào) xẽ cho ra file nạp có dung lượng lớn hơn khi biên dịch ở cấu hình release.
Tương tự cách tối ưu hoá trên áp dụng GCC biên dịch cho ARM.
 
Sửa lần cuối:

Quảng cáo Google