Bài 9 : Cross Platform cho Raspberry Pi
15:48 - 15/01/2019
Cross platform cho Raspberry Pi
Remote Desktop Raspberry Pi không cần Wifi, mạng LAN và IP
Camera nhiệt giải pháp tuyệt vời cho mùa Covid-19
Lập trình cơ bản với OpenPLC trên Raspberry Pi
Hướng dẫn cài đặt OpenPLC trên Raspberry Pi
Chắc hẳn các bạn khi làm việc với Raspberry đã quen với việc kết nối thêm màn hình, bàn phím và chuột tới Pi để biến nó thành chiếc máy tính thực thụ. Hoặc đơn giản hơn chỉ cần thực hiện Remote Desktop thông qua Internet với Pi. Tuy nhiên đôi lúc những phương thức trên thật bất tiện nếu bạn không có nhiều màn hình hay chuột, bàn phím, Remote Desktop thường chạy rất đơ và trở nên chậm chạp. Nếu mục đích của bạn là xây dựng úng dụng trên Pi thì có một cách khác hay hơn để làm việc, đó là Cross Platform (hoặc cross development). Nói đơn giản thì bạn hoàn toàn chỉ cần làm việc trên máy tính của bạn và copy kết quả là ứng dụng sang Pi và chạy. Khi bạn biên dịch một ứng dụng trên máy tính, các trình biên dịch sẽ biên dịch để chương trình đó có thể chạy được trên CPU của bạn. Giả sử CPU của bạn là dòng của Intel, trình biên dịch sẽ biên dịch file thực thi có thể chạy trên các máy có CPU là Intel. Muốn ứng dụng có thể chạy được trên Pi thì cần phải có trình biên dịch cho dòng vi xử lý ARM. Trong bài này mình sẽ hướng dẫn các bạn thực hiện viết ứng dụng trêm một chiếc máy tính cá nhân thông thường nhưng biên dich cho vi xử lý ARM (cross platform). Điểm tiện ích nhất của Cross Platform là tốc độ viết ứng dụng và biên dịch ứng dụng. Tuy tốc độ xử lý trên Pi cũng rất nhanh so với các dòng vi xử lỷ khác. Tuy nhiên so với máy tính cá nhân thông thường vẫn thua kém về tốc độ và dung lượng RAM. Bài viết hướng dẫn trên hai hệ điều hành là Linux và window. Mình luôn khuyến khích sử dụng Linux nếu các bạn muốn là việc với Pi vì đơn giản Pi cũng dùng hệ điều hành Linux. Các thư viện lập trình, trình biên dịch đều tương đồng (tất nhiên lõi dành cho vi xử lý là khác nhau). Chú ý rằng các bạn không cần quan tâm tới phần cứng CPU là Intel hay AMD vì hệ điều hành đã thay bạn quan tâm điều đó. 1. Cross Platform sử dụng LinuxMình giả thiết rằng các bạn đang sử dụng hệ điều hành Linux, có thể là Ubuntu hoặc Debian v.v… . Những hướng dẫn dưới đây đa phần đều có thể chạy trên các OS của linux phiên bản khác nhau. Raspberry chạy hệ điều hành Raspbian Wheezy. Trình biên dịch cần sử dụng bộ thư viện cơ bản là C và C++ đã được cài đặt sẵn trong OS. Ngoài ra các bạn cần cài đặt thêm công cụ biên dịch cần thiết “build-essential”. sudo apt-get install build-essential # câu lệnh này chạy trên ubuntu.
Download trình biên dịch cross platform dành cho ARM chạy trên Pi. Trình biên dịch do Raspberry cung cấp. Download tại đây . Dung lượng download khá lớn khoảng 1Gb nên các bạn có thể thong thả làm chén trà trong lúc chờ đợi. Khi download hoàn tất, hãy mở thư mục “/tools/arm-bcm2708” lên. Trong đó có 4 files chứa 4 toolchain khác nhau. - arm-bcm2708-linux-gnueabi - arm-bcm2708hardfp-linux-gnueabi - gcc-linaro-arm-linux-gnueabihf-raspbian - gcc-linaro-arm-linux-gnueabihf-raspbian-x64 Nếu máy chạy hệ điều hành 32bit thì các bạn sẽ sử dụng “gcc-linaro-arm-linux-gnueabihf-raspbian” làm trình biên dịch, còn nếu là máy 64bit thì sẽ dùng “gcc-linaro-arm-linux-gnueabihf-raspbian-x64”. Chỉ con trỏ terminal tới thư mục home và gõ lệnh gedit .bashrc
File .bashrc bao gồm những đoạn lệnh mà mỗi khi bạn mở terminal lên sẽ được thực thi. Nó có thể bao gồm những thiết lập, config, hay lịch sử của shell. Bạn hãy add thêm dòng này vào cuối file nếu là OS 32bit: export PATH=$PATH:$HOME/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin Ở đây mình download tools về ở trong thư mục home, bạn hãy điều chỉnh lại đúng vị trí với thư mục của bạn. Nếu là OS 64bit thì thêm dòng này : export PATH=$PATH:$HOME/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Sau đó thực hiện update lại .bashrc. source .bashrc
Lý do phải thực hiện export PATH là để các bạn có thể chạy chương trình biên dịch ở bất cứ đâu trên hệ thống. Hệ thống sẽ tự tìm chương trình biên dịch thông qua PATH. Để kiểm tra lại các bạn có thể gõ lệnh. arm-linux-gnueabihf-gcc -v
Nó sẽ hiển thị thông tin về trinh biên dịch. Nếu không thì chắc hẳn đã lỗi đường dẫn ở đâu đó, hãy kiểm tra lại việc export PATH. Như vậy việc cài đặt trình biên dịch cross plaform đã hoàn tất. Các bạn hãy thử nghiệm cross platform với chương trình đơn giản dưới đây : // tea.c
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[]){
while(1){
printf("Give me a cup of tea \n");
sleep(1);
}
return 0;
} Thực hiên biên dịch với “arm-linux-gnueabihf-gcc”: arm-linux-gnueabihf-gcc tea.c –o tea Copy file thực thi sang Pi để chạy thử và hóng kết quả nhé. 2. Cross Platform trên windowTrên window có rất nhiều IDE có thể lập trình cho C như Visual, Dev C, hay eclipse. Các công cụ này cũng có thể sử dụng một trình biên dịch ngoài để biên dịch. Tức là có thể dùng trình biên dịch cho ARM để build. Ở đây minh sẽ hướng dẫn dùng eclipse để thực hiện Cross Platform. Download : - GCC Cross compiler . Các bạn hãy chọn đúng bản phù hợp với phiên bản Raspbian. - Eclipse : phiên bản mới nhất hiện nay là 4.5 2.1 Thực hiên cài đặt GCC cross compilerCác bạn thực hiện cài đặt chương trình Thực hiện config. Mở thư mục C:\SysGCC\Raspberry\TOOLS\UpdateSysroot Chọn select và lựa chọn setup new connection, sau đó điền thông tin địa chỉ của Raspberry của bạn vào. Các bạn bật raspberry lên và chọn connect. Thực hiện connect thành công thì thực hiện Synchronize để copy thư viên của Pi vào máy tính. Sau này nếu các bạn update hệ thống raspbian thì nên thực hiện lại synchronize. 2.2 Thiết lập eclipse Mở eclipse lên và tạo một project mới. Lựa chọn Toolchains là “Cross GCC”. Sau đó ấn next Tiếp tục next Điền cross compiler prefix là : “arm-linux-gnueabihf- ” Cross compiler path : là địa chỉ của chương trình GCC cross compiler Sau đó nhấn finish để hoàn tất. Các bạn viết chương trình tea.c như phần 1 và thực hiện build. Lưu ý rằng không thể run được file thực thì này trêm máy tính, vì file này chỉ chạy trên ARM - ở đây là Pi. Các bạn copy sang Pi. Chuyển file đó thành file thực thi trên Pi : chmod +x tea Và thực hiện chạy : ./tea . Kết quả giống với phần 1. Ngoài ra các bạn có thể hoàn toàn sử dụng các IDE khác như Visual studio để cross platform. Link tham khảo : |
Để cập nhật các tin tức công nghệ mới các bạn làm theo hướng dẫn sau đây :
Các bạn vào Trang chủ >> Tin tức. ở mục này có các bài viết kỹ thuật thuộc các lĩnh vực khác nhau các bạn có thể lựa chọn lĩnh vực mà mình quan tâm để đọc nhé !!!
Các bạn cũng có thế kéo xuống cuối trang để xem những tin tức công nghệ mới nhất.