Top Ad unit 728 × 90

Latest news

recent

Biên dịch ứng dụng C / C++ cho Raspberry Pi



Raspberry Pi hỗ trợ viết và biên dịch ứng dụng ngay bên trong board (Local-Compilation Environment), vì các hệ điều hành của nó như Raspbian có tích hợp sẵn công cụ phát triển và trình biên dịch giống như môi trường PC Linux truyền thống tương ứng với bộ xử lý ARM 7 của Raspberry PI. Tuy nhiên vì những giới hạn về tài nguyên phần cứng, sức mạnh xử lý mà việc biên dịch các ứng dụng lớn, mã nguồn hàng trăm file trở thành ghánh nặng, tiêu tốn rất nhiều thời gian, thậm chí không thể biên dịch thành công bằng môi trường sẵn có này. Do vậy việc thiết lập môi trường biên dịch trên PC Linux (trong bài viết Tôi sử dụng máy ảo Ubuntu Server) cho các ứng dụng của Raspberry Pi là không thể không làm vì sự phát triển lâu dài. Trong bài viết này Tôi hướng dẫn các bạn thực hiện cả hai phương pháp, on board với Raspbian, và qua máy ảo linux trung gian (Cross-Compilation Environment) dùng bộ công cụ biên dịch (Toolchain) dành riêng cho Raspberry Pi.

1. Local-Compilation Environment: 

Trong giao diện console của Raspberry Pi, hay giao diện xshell sau khi kết nối với Raspberry Pi qua SSH ta thực hiện các thao tác:

- Soạn thảo mã nguồn cho chương trình helloworld

$ cd ~
$ nano helloworld.c

trong giao diện soạn thảo của nano:

#include<stdio.h>
main()
{
       printf("\n Hello World ! \n");
}

nhấn Ctr - X chọn y để lưu file và Enter để thoát ra.

- Biên dịch bằng GCC:

$ gcc -o helloworld helloworld.c

- Chạy chương trình:

$ ./helloworld

2. Cross-Compilation Environment:

- Dùng VMWare cài máy ảo Ubuntu Server.

- Trên máy ảo, tạo thư mục làm việc tại /home/bioz/workdir/ trong đó bioz là user name thường dùng login vô máy ảo bạn có thể đặt tùy ý, cài samba chia sẻ thư mục làm việc để ta có thể truy cập vào nó dễ dàng từ window, khi đó quá trình tạo, chỉnh sửa tập tin mã nguồn, config sau này chỉ thực hiện như trên môi trường window với các công cụ edit thuận tiện hơn như notepad++. Cài dịch vụ SSH để có thể remote console thông qua công cụ Xshell.

$ cd /home/bioz/workdir 
$ mkdir -p raspberry_pi 
$ cd raspberry_pi 
$ sudo apt-get install git 
$ git clone https://github.com/raspberrypi/tools

- Sau khi tải về bộ công cụ biên dịch, trong thư mục raspberry_pi sẽ có tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin chứa các công cụ biên dịch cho raspberry trong môi trường 32bit (kiến trúc máy ảo hỗ trợ), còn tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin hỗ trợ môi trường 64bit, tùy theo kiến trúc của máy ảo mà bạn chọn bộ thích hợp.

- Để thuận tiện trong làm việc và không phải gỏ lại đường dẫn khi sử dụng ta export đường dẫn vào $PATH biến môi trường của hệ thống bằng lệnh:

$ export PATH=/home/bioz/workdir/raspberry_pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:$PATH

- Như vậy chúng ta đã chuẩn bị sẵn sàng môi trường phát triển các ứng dụng viết bằng C hay C++ cho Raspberry Pi. Có lẽ nhiều bạn sẽ thắc mắc,với một ngôn ngữ khác rất thông dụng trong Raspberry PI là Python thì sao? Python là ngôn ngữ thông dịch không phải biên dịch, nó chạy trên nền hỗ trợ của Python Engine, nền tảng này hỗ trợ sẵn cross platform, nghĩa là một khi bạn tạo ra chương trình chạy được với window, linux trên PC hay ARM thì bạn có thể dùng nó cho những môi trường còn lại. Sự khác biệt nền tảng đã được giải quyết bởi các phiên bản engine khác nhau của Python dành cho mỗi môi trường mà ứng dụng của bạn thực thi.



Binh Nguyen - Bioz
Biên dịch ứng dụng C / C++ cho Raspberry Pi Reviewed by Bioz Nguyen on 4:19:00 PM Rating: 5
All Rights Reserved by IEEV © 2009 - 2016
Powered By Blogger, Designed by Sweetheme

Contact Form

Name

Email *

Message *

Powered by Blogger.