1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo lập trình nhúng

163 1,8K 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 163
Dung lượng 6,73 MB

Nội dung

Báo cáo lập trình nhúng Gồm 6 Topic cơ bản liên quan đến quá trình sử dụng, biên dịch, làm quen với các phần mềm để sử dụng cho KIT KM9260

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA ĐIỆN – ĐIỆN TỬ

BÁO CÁO LẬP TRÌNH NHÚNG

GVHD : ĐẬU TRỌNG HIỂN SVTH : HOÀNG VĂN THƯƠNG 12341113

NGUYỄN ĐỨC HUY 12341045

Tp Hồ Chí Minh, Tháng 5 Năm 2013

Trang 2

LỜI NÓI ĐẦU

Thế giới ngày nay với khoa học kĩ thuật phát triển mạnh mẽ cuộc sống con người ngày càng được phát triển tốt hơn Khoa học kỹ thuật đem lại nhiều tiện ích thiết thực hơn cho cuộc sống con người Góp phần to lớn trong quá trình phát triển của khoa học kỹ thuật là sự phát triển mạnh mẽ của vi xử lý Từ bộ vi

xử lý đầu tiên Intel 4004 được sản xuất bởi công ty Intel vào năm 1971, đến nay ngành công nghiệp vi xử lý đã phát triển vượt bậc và đa dạng với nhiều loại như:

8951, PIC, AVR, ARM, Pentium,Core i7,…

Cùng với sự phát triển đa dạng về chủng loại thì tài nguyên của vi xử lý cũng được nâng cao Các vi xử lý ngày nay cung cấp cho người dùng một nguồn tài nguyên rộng lớn và phong phú Có thể đáp ứng được nhiều yêu cầu khác nhau trong thưc tế Để giúp cho người dùng sử dụng hiệu quả và triệt để các tài nguyên này thì hệ thống nhúng ra đời Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ Đó là các hệ thống tích hợp cả phần cứng và phần phềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp,

tự động hoá điều khiển, quan trắc và truyền tin Cùng với sự ra đời của hệ thống nhúng, vi xử lý ngày càng được ứng dụng rộng rãi trong đời sống cũng như trong công nghiệp vì khả năng xử lý nhanh, đa dạng, tiết kiệm năng lượng và

độ ổn định của hệ thống nhúng

Những năm gần đây, sự năng động và tích cực hội nhập quốc tế đã đem về hơi thở mới cho Việt Nam về mọi mặt: kinh tế, xã hội, văn hóa, nghệ thuật … Lĩnh vực kỹ thuật nói chung và kỹ thuật điện tử nói riêng cũng có những thay đổi theo chiều hướng tích cực Bên cạnh việc áp dụng những kỹ thuật mới (chủ yếu mua từ nước ngoài) vào sản xuất, nhiều công ty ở Việt Nam đã chú trọng đến việc phát triển đội ngũ R&D (Research And Development) để tự chế tạo sản phẩm hoàn thiện cung ứng cho thị trường Một trong những sản phẩm đó là

Trang 3

kit KM9260 là một kit nhúng được tích hợp cao trên nền vi điều khiển AT91SAM9260.

Tuy hệ thống nhúng rất phổ biến trên toàn thế giới và là hướng phát triển của ngành Điện tử sau này nhưng hiện nay ở Việt Nam đội ngũ kỹ sư hiểu biết về hệ thống nhúng còn rất hạn chế không đáp ứng được nhu cầu nhân lực trong lĩnh vực này Trước tình hình thiếu nhân lực như thế này, trường Đại Học Sư Phạm

Kỹ Thuật Thành Phố Hồ Chí Minh với tư cách là một trong những trường sư phạm kỹ thuật đứng đầu của Việt Nam đã nghiên cứu về lĩnh vực hệ thống nhúng và sẽ đưa vào hệ thống môn học đào tạo trong tương lai gần nhất

Vì vậy nhóm chúng em đã viết bài báo cáo này để củng cố lại kiến thức sau thời gian tiếp xúc với bộ môn nhúng này Bài viết gồm 6 TOPIC cơ bản liên quan đến quá trình sử dụng, biên dịch, làm quen với các phần mềm để sử dụng

cho KIT KM9260 này.

Mặc dù nhóm chúng em đã cố gắng hoàn thành nhiệm vụ đặt ra và đúng thời hạn nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, mong thầy và các bạn sinh viên thông cảm Nhóm chúng em mong nhận được những ý kiến đóng góp của thầy và các bạn sinh viên

TP.HCM, Ngày 13 tháng 05 năm 2013

Nhóm 29

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, nhóm chúng em xin được phép chân thành gửi lời cảm ơn đến thầy Đậu Trọng Hiển, giáo viên hướng dẫn bộ môn Lập Trình Nhúng, đã định hướng và trao đổi những kinh nghiệm quý báu để nhóm chúng em thực hiện những nội dung trong cuốn tiểu luận này một cách hoàn chỉnh

TP.HCM, Ngày 15 tháng 05 năm 2013

Trang 5

MỤC LỤCTOPIC 1: Phần cứng KIT nhúng KM 9260

Sơ đồ khối của kit Km9260 trang 1Một số đặc điểm chung trang 2TOPIC 2 :Các Gói Nhân Linux ( Phần Mềm) cho KIT Các gói nhân, quá trình boot, cách nạp OS cho KIT

Các gói nhân của hệ điều hành LINUX trang 13Quá trình boot hệ điều hành LINUX trang 15TOPIC 3: Phương pháp biên dịch trên KIT KM 9260

Giới thiệu sơ lượt trang 25Cách thức cài công cụ trên PC trang 25Cách thức chép file, truyền file, thư viện vào kit trang 26Thực thi chương trình trên Kit trang 28TOPIC 4 : Giới thiệu QT

Tổng quan sơ lược về QT trang 31Cài đặt thư viên Tslib trang 32Cài đặt thư viện Opensource everywhere trang 34TOPIC 5 : Phương pháp biên dịch QT sang KIT hoặc thiết bị nhúng hoặc điện thoại

TOPIC 6 : Giới thiệu về lập trình driver và phương pháp lập trình driver

Giới thiệu tổng quan về lập trình driver trang52

Số định danh character driver trang 56Cấu trúc mô tả tập tin của character driver trang 63Cấu trúc tập tin của character driver trang65Cài đặt character device driver vào hệ thống Linux trang 66Tổng quan về giao diện trong cấu trúc lệnh file_operations trang 68Giao diện read() & write() trang 68Giao diện ioctl() trang 71

Trang 6

Lập trình mã lệnh trong character driver trang 77Cài đặt driver vào hệ thống linux trang 90Phương pháp lập trình driver trang 91Biên dịch chương trình driver trang 106

Trang 7

TOPIC 1 PHẦN CỨNG KIT NHÚNG KM9260

Một hệ thống nhúng bao gồm hai phần: phần cứng và phần mềm Trong đó phần cứng là nền tản, là điều kiện cần để một hệ thống nhúng có thể tồn tại Để

có thể sử dụng được một hệ thống nhúng thì chúng ta phải hiểu được phần cứng của nó

Trong hệ thống nhúng ngoài vi xử lý là nồng cốt thì bên cạnh đó còn có nhiều linh kiện khác: chíp nhớ, các thiết bị ngoại vi, … Trong phần này chúng ta sẽ tìm hiểu phần cứng của Kit KM9260 gồm những linh kiện nào, chức năng của các linh kiện, vị trí của từng linh kiện trên board

Vì phần cứng hệ thống nhúng đa số là do các công ty sản xuất thiết kế, thi công nên với tư cách là một người nghiên cứu để sử dụng thì trong giáo trình này chúng ta không đi sâu vào mạch nguyên lý của kit nhúng

Sơ đồ khối của kit Km9260

Trang 8

I MỘT SÔ ĐẶC ĐIỂM CHUNG

1.1 Bộ xử lý

- Sử dụng các bộ xử lý 32 bit, các vi điều khiển 32 bit đa dụng (General purpose microcontroller)

- Tốc độ xử lý: Vài trăm Mhz

- Độ tin cậy cao, tiêu thụ năng lượng thấp

- Hỗ trợ giao tiếp nhiều ngoại vi

1.2 Nguồn cung cấp

- Nguồn cung cấp phải tuyệt đối ổn định, chuẩn

- Có khả năng cung cấp nhiều mức điện áp cho hệ thống như: 5v, 3.3v, 2.5v, 1.8v

Trang 9

5 J10 Cổng truyền dữ liệu nối tiếp BD9

8 U9 Serial dataflash (512kB)

9 U1 AT91SAM9260, 16/32 bit ARM926EJ-S 180Mhz

11 U5 DM9161EA, Ethernet 10/100 Full-Duplex

12 RJ1 Cổng Giao tiếp Ethernet (RJ45)

13 S1, S2, S3,

S4

Các nút nhấn

Trang 10

- Bộ nhớ chính sử dụng SDRAM bus 133Mhz, SDRAMC được cấu hình với bus data 16 bit.

Mã số linh kiện MT48LC16M16A2 TC75

Địa chỉ đoạn 0x20000000Dung lượng 0x2000000 (32MB)

- Bảng sau trình bày thông số bảng đồ vùng nhớ của SDRAM trong hệ thống

Thông số của SDRAM

- Mã số linh kiện là số được in trên chân của chip, mã này do nhà sản xuất qui định

- Chân chọn chip NCS1 có nghĩa là chân CS của chip được nối với chân SDCS_NCS1 của vi xử lý

- Địa chỉ đoạn là địa chỉ mà vi xử lý gán cho chip tương ứng với NCS1

- Dung lượng của SDRAM là 32 MB

1.3.2 Serial dataflash

Trang 11

Sơ đồ kết nối Serial DataFlash

- Board sử dụng chip nhớ serial dataflash kết nối qua đường SPI0 ( slot CS1 )

- AT91Bootstrap các biến môi trường ( U-Boot’s Environment Variables ), U-Boot được lưu trữ trong serial data flash Các phân vùng chứa các bootloader được thể hiện bởi bảng sau:

Mã số linh kiện AT45DB041D-SU

Trang 12

Sơ đồ kết nối NAND FLASH

- Nand flash 256 MB dùng để chứa nhân Linux và root file system 3 MB vùng nhớ đầu tiên dành cho việc chứa kernel Linux, phân vùng còn lại chứa root file system của hệ thống bảng sau thể thiện thông số memory map của Nand flash

Mã số linh kiện K9F2G08UOM

Trang 13

- Do có hỗ trợ microSD, có thể thay thế vai trò của NAND Flash cho việc lưu trữ kernel Linux với rootfs Phân vùng đầu tiên (first partition) được format theo định dạng FAT, phân vùng thứ 2 được định dạng theo ext2 hoặc ext3 dùng để chứa rootfs Để load kernel Linux từ MicroSD vào SDRAM đòi hỏi U-Boot phải hỗ trợ mmc sub system command set MicroSD thường được dùng để boot Linux có roofs dung lượng lớn, ví dụ như Debian distribution

Trang 14

Cổng truyền dữ liệu nối tiếp DB9

AT91SAM9260 có tích hợp cổng RS232 KM9260 dùng cổng RS232 này cho việc hiển thị,

xuất nhập với console chính của Linux

1.4.4 Cổng kết nối Ethernet (RJ1)

Cổng kết nối Ethernet

AT91SAM9260 có thể kết hợp với chíp Fast Ethernet PHY DM9161AEP mang lại cho hệ thống tính năng mạnh mẽ về các ứng dụng mạng KM9260 có thể sử dụng như hệ thống webserver nhúng, sử dụng trong hệ thống thu thập đo lường, điều khiển từ xa

1.4.5 Kết nối mở rộng SCI (J17)

Khe cắm kết nối mở rộng SCI

Sơ đồ chân của khe cắm kết nối mở rộng SCI

SỐ

CHÂN

TÍN HIỆU

CHÂN VXL

SỐ CHÂN

TÍN HIÊU

Trang 15

Connector cho phép ta có thể mở rộng kết nối với các thiết bị I2S audio

codec, truyền nhận dữ liệu 32bit stream ( High-speed Continuous Data

Stream )

1.4.6 Kết nối mở rộng SPI (J14)

Khe cắm kết nối mở rộng SPI

SỐ CHÂN TÍN HIỆU CHÂN VXL SỐ

Sơ đồ chân của khe cắm kết nối mở rộng SPI

Connector mở rộng cho SPI, bao gồm 3 đường chip select tương ứng cho 3 slot CS0, CS1, S2

1.4.7 Kết nối mở rộng UART, ADC, TWI (J16)

Khe cắm kết nối mở rộng Uart, Adc, Twi

SỐ TÍN HIỆU CHÂN VXL SỐ CHÂN TÍN HIÊU CHÂN VXL

Trang 16

Sơ đồ chân của khe cắm kết nối mở rộng Uart, Adc, Twi

Connector mở rộng cho các cổng giao tiếp serial bao gồm UART, TWI, bộ chuyển đổi ADC, GPIO, ngắt ngoài IRQ1

1.4.8 Giao tiếp JTAG ICE (J5)

Khe cắm giao tiếp JTAG ICE

Trang 17

thống

Trang 19

TOPIC 2 Các Gói Nhân Linux ( Phần Mềm) cho KIT Các gói nhân, quá

trình boot, cách nạp OS cho KIT.

I Các gói nhân của hệ điều hành LINUX:

* Các 3 loại kernel (nhân) khác nhau:

Về bản chất, có nhiều cách để xây dựng cấu trúc và biên dịch 1 bộ kernel nhất định từ đầu Nhìn chung, với hầu hết các kernel hiện nay, chúng ta có thể chia ra làm 3 loại: Monolithic, Microkernel, và Hybrid Linux sử dụng kernel Monolithic trong khi OS X (XNU) và Windows 7 sử dụng kernel Hybrid

1 Microkernel:

Microkernel có đầy đủ các tính năng cần thiết để quản lý bộ vi xử lý, bộ nhớ

và IPC Có rất nhiều thứ khác trong máy tính có thể được nhìn thấy, tiếp xúc và quản lý trong chế độ người dùng Microkernel có tính linh hoạt khá cao, vì vậy bạn không phải lo lắng khi thay đổi 1 thiết bị nào đó, ví dụ như card màn hình, ổ cứng lưu trữ hoặc thậm chí là cả hệ điều hành Microkernel với những thông

số liên quan footprint rất nhỏ, tương tự với bộ nhớ và dung lượng lưu trữ, chúng còn có tính bảo mật khá cao vì chỉ định rõ ràng những tiến trình nào hoạt động trong chế độ user mode, mà không được cấp quyền như trong chế độ giám sát - supervisor mode

- Phần cứng đôi khi “khó hiểu” hơn thông qua hệ thống driver

- Phần cứng hoạt động dưới mức hiệu suất thông thường vì các trình điều khiển ở trong chế độ user mode

- Các tiến trình phải chờ đợi để được nhận thông tin

Trang 20

- Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải chờ đợi.

2 Monolithic Kernel:

Với Monolithic thì khác, chúng có chức năng bao quát rộng hơn so với microkernel, không chỉ tham gia quản lý bộ vi xử lý, bộ nhớ, IRC, chúng còn can thiệp vào trình điều khiển driver, tính năng điều phối file hệ thống, các giao tiếp qua lại giữa server Monolithic tốt hơn khi truy cập tới phần cứng và đa tác

vụ, bởi vì nếu 1 chương trình muốn thu thập thông tin từ bộ nhớ và các tiến trình khác, chúng cần có quyền truy cập trực tiếp và không phải chờ đợi các tác vụ khác kết thúc Nhưng đồng thời, chúng cũng là nguyên nhân gây ra sự bất ổn vì nhiều chương trình chạy trong chế độ supervisor mode hơn, chỉ cần 1 sự cố nhỏ cũng khiến cho cả hệ thống mất ổn định

- Tiêu tốn nhiều footprint cài đặt và lưu trữ

- Tính bảo mật kém hơn vì tất cả đều hoạt động trong chế độ giám sát - supervisor mode

3 Hybrid Kernel:

Khác với 2 loại kernel trên, Hybrid có khả năng chọn lựa và quyết định những ứng dụng nào được phép chạy trong chế độ user hoặc supervisor Thông thường, những thứ như driver và file hệ thống I/O sẽ hoạt động trong chế độ user mode trong khi IPC và các gói tín hiệu từ server được giữ lại trong chế độ supervisor

Trang 21

Tính năng này thực sự rất có ích vì chúng đảm bảo tính hiệu quả của hệ thống, phân phối và điều chỉnh công việc phù hợp, dễ quản lý.

* Ưu điểm:

- Các nhà phát triển có thể chọn và phân loại những ứng dụng nào sẽ chạy trong chế độ thích hợp

- Sử dụng ít footprint hơn so với monolithic kernel

- Có tính linh hoạt và cơ động cao nhất

* Nhược điểm:

- Có thể bị bỏ lại trong quá trình gây treo hệ thống tương tự như với microkernel

- Các trình điều khiển thiết bị phải được quản lý bởi người dùng

II QUÁ TRÌNH BOOT CỦA HỆ ĐIỀU HÀNH LINUX

Để thực hiện Boot hệ thống trước tiên ta phải thực hiện các bước như sau:

1 Kết nối dây cable (Lan) RJ45

2 Gắn day cable RS232 tử board nhúng vào máy tính sau đó

3 Chạy file chuong trình PUTTY.exeSau khi chùng ta thực hiện xong bước thứ ba thì màn hình giao diện putty sẽ hiển thị lên và thực hiện trình tự theo các bước như sau:

Trang 22

* Quá trình boot hệ thống bắt đầu:

Bước 8:

- Bật nút Power On của KIT và ấn nút Reset để khởi động hệ thống

putty console sẽ hiển thị lên màn hình

- Board xuất xưởng được thiết lập autoboot với Angstrom JFFS2 rootfs

- Kernel (uImage) được chứa trong partition 0 và rootfs được chứa trong partition 1 của NAND Flash

* Nạp kernel uimage vào partion 0 của NAND flash ta làm theo các bước sau:

1 Chạy “tftpd32.exe” trên winXP, với thư mục share có chứa uImage

2 Trước tiên ta xóa vùng partition 0 và download uImage từ máy tính vào SDRAM

3 Chép uImage từ SDRAM vào NAND Flash

* uImage có thể load từ NAND vào SDRAM thông qua lệnh sau:

Trang 23

* Nạp JFFS2 rootfs vào partion 1 của NAND flash ta làm theo các bước sau:

1 Chạy “tftpd32.exe” trên winXP, với thư mục share có chứa JFFS2 rootfs

2 Trước tiên ta xóa vùng partition 1 và download JFFS2 rootfs từ máy tính vào SDRAM

3 Chép JFFS2 rootfs từ SDRAM vào NAND Flash

* BIÊN DỊCH KERNEL:

+ Chuẩn bị toolchain (cross compiler):

+ Ta thực hiện add đường dẫn thư mục bin của cross compiler vào thư mục PATH

Vd: đường dẫn của thư mục cross compiler là

“/home/km9260-project/tool/ arm-2007q3/bin”

+ Sử dụng mkimage:

mkimage là chương trình dùng để tạo ra uImage, việc cài đặt mkimage có thể thực hiện thao các bước sau:

+ Giải nén và patch source kernel:

Trong thư mục root tạo thư mục km9260-project và chép source 2.6.27.tar.bz2 và patch file “linux-2.6.27-km9260-11102009.diff” vào thư

Trang 24

linux-+ Tiến hành cấu hình và build kernel:

* Load kernel và boot Linux:

 Sau khi biên dịch kernel, ta có được file uImage

 Để boot Linux, ta load uImage vào SDRAM

 Thực hiện chép uImage vào SDRAM tại địa chỉ 0x20000000

và boot hệ thống:

QUÁ TRÌNH BOOT LOADER TRONG HỆ THỐNG NHÚNG.

 Boot loader có vai trò quan trọng trong hệ thống nhúng Boot

loader là trình tự thực thi các phần mềm của vi xử lý trong quá trình khởi động của hệ thống

 Tùy theo loại vi xử lý khác nhau mà ta có cơ chế, trình tự boot khác nhau

* Đây là sơ đồ quá trình Boot Loader

Trang 25

Bước 1: Chương trình chạy với bộ dao động nội, hoặc với bộ dao động thạch

anh để thực hiện cấu hình main clock cho hệ thống

Bước 2: Kiểm tra sự tồn tại của chương trình AT91BootStrap trong SPI serial

dataflash device (NPCS0) hay không

 Nếu tồn tại, MPU thực hiện chép mã thực thi của AT91BootStrap

từ SPI serial dataflash device vào SRAM nội của MPU, sau đó thực thi lệnh nhảy đến địa chỉ đầu tiên của SRAM để thực thi chương trình AT91BootStrap

 Nếu không tồn tại chương trình boostrap trong SPI serial dataflash

Trang 26

Bước 3: Kiểm tra sự tồn tại của chương trình AT91BootStrap trong SPI serial

dataflash device (NPCS1) hay không

 Nếu tồn tại, MPU thực hiện chép mã thực thi của AT91BootStrap

từ SPI serial dataflash device vào SRAM nội của MPU, sau đó thực thi lệnh nhảy đến địa chỉ đầu tiên của SRAM để thực thi chương trình AT91BootStrap

 Nếu không tồn tại chương trình boostrap trong SPI serial dataflash device, MPU thực hiện bước B4 sau đây

Bước 4: Kiểm tra sự tồn tại của chương trình AT91BootStrap trong NAND

FLASH device hay không

 Nếu tồn tại, MPU thực hiện chép mã thực thi của AT91BootStrap

từ NAND FLASH vào SRAM nội của MPU, sau đó thực thi lệnh nhảy đến địa chỉ đầu tiên của SRAM để thực thi chương trình AT91BootStrap

 Nếu không tồn tại chương trình boostrap trong SPI serial dataflash device, MPU thực hiện bước B5 sau đây

Bước 5: Nếu MPU nhận được ký tự bất kỳ từ bàn phím máy tính (qua cổng

DBGU) Hoặc khi cắm cable USB vào máy tính chương trình sẽ nhảy sang

SAM-BA boot

Trang 27

HỒI PHỤC BOOT LOADER CHO KM9260:

Trước tiên, ta cài đặt chương SAMBA của ATMEL vào máy tính (chạy WinXP)

Bước 1: Click chuột vào file "Install AT91-ISP v1.13.exe" thực hiện việc cài

đặt tool vào máy tính (chọn default cho các bước cài đặt) Sau khi hoàn tất các bước ta phải reset máy tính để cập nhật hệ thống

Bước 2: Sau khi cài đặt xong, tiến hành add KM9260 vào SAMBA bằng cách

copy thư mục "AT91-ISP v1.13" lấy từ đĩa CD và chép đè lên thư mục trong

Trang 28

Sau khi có thông báo có chép đè lên file cũ hay không, chọn "Overwrite All"

để hoàn tất việc cài đặt tool SAMBA trên WinXP

TRÌNH TỰ PHỤC HỒI BOOT LOADER CHO KM9260 ĐƯỢC THỰC HIỆN NHƯ SAU:

1 Tháo Jumper J13 trên board KM9260 (gần IC AT45DB041D-SU)

2 Bật công tắc nguồn trên board

Khởi động chương trình SAMBA trên máy vi tính và thực hiện các bước sau:

HỒI PHỤC BOOT LOADER CHO KM9260:

Bước 1: Chọn tên board và kiểu kết nối ấn nút Connect

Bước 2: Chọn tab DataFlash AT45DB/DCB, trong list box "script" chọn

"Enable Dataflash (SPI0 CS1)", ấn nút Execute để khởi động AT45DB041D SPI

serial dataflash

Trang 29

Bước 3: Trong list box "script" chọn "Send Boot File", ấn nút Execute,

browse đến thư mục chứa AT91BootStrap.bin (đính kèm theo đĩa CD) và chọn file này Chương trình SAMBA sẽ tự động nạp AT91BootStrap vào SPI

dataflash

Trang 30

Bước 4: Trong text

box "Send File Name",

ấn nút browse và trỏ đến

file u-boot.bin (đính

kèm trong đĩa CD)

Trong text box

"Address" type vào địa

chỉ 0x8400

Ấn nút "Send File" để

hoàn tất việc nạp u-boot

vào SPI serial dataflash

Bước 5: Sau khi thực hiện các bước trên, KM9260 đã được phục hồi boot

loader, ấn nút reset và hệ thống có thể boot bình thường

Trang 31

TOPIC 3 PHƯƠNG PHÁP BIÊN DỊCH TRÊN KIT KM9260

1 Giới thiệu sơ lượt

Trình biên dịch chéo cho phép biên dịch ứng dụng viết bằng ngôn ngữ C biên dịch cho AT91SAM chạy trên môi trường Linux Thực hành biên dịch chương trình và nạp chương trình xuống KIT để thực thi

2.Cách thức cài công cụ trên PC

* Gồm 3 bước:

Bước 1 : Cài đặt trình biên dịch chéo Cross GCC trên máy tính Linux

 Trước tiên ta download arm-linux-gcc tại link sau:

http://www.friendlyarm.net/dl.php?file=arm-linux-gcc-4.4.3.tgz

 Chuyển đến thư mục chứa file nén arm-linux-gcc-4.4.3.tar.gz và tiến hành giải nén :

$ cd Downloads/ $ sudo tar xvzf arm-linux-gcc-4.4.3.tgz –C/

 Sau đó nhập password để giải nén

 Kết quả giải nén được thư mục chứa trình biên dịch có đường dẫn như sau:

opt/FriendlyARM/toolschain/4.4.3/bin

Bước 2 : Cập nhật biến môi trường PATH cho trình biên dịch chéo

 Mục đích: Cập nhật biến môi trường của Linux OS cho trình biên dịch chéo để có thể sử dụng trực tiếp ở mọi nơi (Gọi lệnh trên các cửa sổ lệnh mà không cần chuyển đến thư mục chứa)

 Thực hiện:

Mở file ~/.bashrc bằng trình soạn thảo thích hợp (gedit, vi, vim, …): gedit

Trang 32

Thêm 1 dòng vào cuối file bashrc

PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

Lưu và đóng file bashrc Sau khi thiết lập biến môi trường cần tắt cửa sổ terminal, mở cửa sổ mới để thiết lập có hiệu lực

Bước 3 : kiểm tra thiết lập

3 Cách thức chép file, truyền file, thư viện vào kit:

Để nạp file chương trình ( đã biên dịch trên máy tính bằng trình biên dịch chéo) lên KIT, chúng ta sử dụng kết nối Ethernet ( cable LAN ) giữa máy tính

và KIT ( target ) bằng phần mềm gFTP ( phần mềm giao tiếp truyền file trên Linux/Ubuntu )

Trang 33

Gồm các bước:

Bước 1 : Cài đặt gFTP

Thông thường gFTP đã được cài đặt sẵn trên Ubuntu (Mở Application/Internet/gFTP ) Nếu chưa có, có thể cài đặt từ internet dùng lệnh:

sudo apt-get install gftp

Bước 2: Cấu hình cổng LAN trên máy tính Linux

KIT KM9260 có địa chỉ IP mặc định là 192.168.3.29, netmask: 255.255.255.0

Trang 34

Do vậy để kết nối cable LAN giữa máy tính PC và KIT ( target ) cần cấu hình

để máy tính có cùng giải địa chỉ này Thực hiện lệnh ifconfig cấu hình cho ethernet interface ( eth0 )

$sudo ifconfig eth0 192.168.3.20 netmask 255.255.255.0 up

Sử dụng lệnh ifconfig eth0 để kiểm tra lại xem eth0 đã có địa chỉ IP cùng giải

Bước 3: Thực hiện kết nối máy tính và KIT

Mở kết nối (Click nút Open connection)

Cửa sổ bên trái là cây thư mục trên máy phát triển (máy HOST)

Cửa sổ bên phải là cây thư mục trên kit (Target)

gFTP cung cấp chức năng duyệt/chuyển thư mục ( hệ thống file trên KIT ), và truyền/nhận file giữa Host và KIT

4 Thực thi chương trình trên Kit

Bước 1: Viết mã nguồn chương trình Hello

 Dùng trình soạn thảo mã nguồn thích hợp (ví dụ: gedit)

 Soạn thảo file mã nguồn C như sau (Chương trình có tính chất minh họa)

Trang 35

Bước 2: Biên dịch file mã nguồn sử dụng trình biên dịch chéo

 Chuyển đến thư mục chứa file mã nguồn Hello.c đã có

 Biên dịch bằng lệnh:

$ gcc –o hello hello.c

Trang 36

Bước 3: Nạp chương trình và thực thi chương đã biên dịch xuống KIT

Username: root

Password: km9260

Gán thuộc tính thực thi: chmod 777 hello

- Trên KIT, di chuyển đến thư mục chứa chương trình chạy (/ktmt/bin), thực hiện chương trình: Ví dụ /Hello

Trang 37

TOPIC 4 GIỚI THIỆU QT

I TỔNG QUAN SƠ LƯỢC VỀ QT

Qt là nền tảng xây dựng các ứng dụng chạy được trên nhiều hệ điều hành Phần lớn các ứng dụng xây dựng bằng Qt đều có giao diện đồ họa, do vậy Qt

còn được coi như là một bộ công cụ (widget toolkit) Ban đầu Qt ra đời như một

sản phẩm thương mại và cũng được dùng để viết môi trường KDE, nhưng về sau được bổ sung giấy phép LGPL, theo đó có thể được sử dụng tự do để phát triển các phần mềm nguồn mở hay đúng hơn là có thể sử dụng trong các phần mềm thương mại nếu muốn Bản quyền thương mại của Qt hiện nay đã được chuyển qua hình thức thu phí hỗ trợ Bạn có thể dùng Qt như một thư viện để viết phần mềm thương mại, nếu có sửa đổi nào trong bộ nguồn chính của Qt thì bạn phải cung cấp mã nguồn đã sửa ra chứ không yêu cầu phải mở toàn bộ mã nguồn hay phải mua giấy phép thương mại như trước kia

Có thể nói, việc sử dụng Qt trên Linux gần giống với việc chúng ta sử dụng Visual Studio trên Windows, tuy nhiên nếu bạn muốn sử dụng Qt trên Windows thì vẫn có phiên bản dành cho hệ điều hành này

Giao diện làm việc với Qt Creator:

Trang 38

* Đề cài đặt Qt Creator, trong Ubuntu bạn làm các bước như sau:

Sau khi cài đặt xong, để khởi động Qt chúng ta cũng làm các bước sau:

II cài đặt thư viên Tslib.

Tslib là một thư viện cung cấp các stack, các chức năng cho việc giao tiếp với touchscreen trong hệ thống Linux

Trước hết chúng cần cài đặt gói git-core nhằm giúp việc lấy source của tslib

Ubuntu Software Center

[tại ô Search] Qt Creator

Install

Trang 39

Để dễ quản lý thì thư mục QtTut được tạo để lưu trữ các file có liên quan Để tạo thư muc QtTut ta thực hiện bằng 2 dòng lệnh sau:

$ cd /

$ mkdir QtTut

Và bắt đầu tải thư viện bằng 2 dòng lệnh tiếp theo như sau:

$ cd /QtTut/

$ git clone http://github.com/kergoth/tslib.git

Sau khi tải thành công thì màn hình Terminal có giao diện như hình dưới đây:

Sau đó config cho gói tslib bằng lệnh sau:

$ make

$ make install

Và thư viện sẽ được tạo như hình dưới đây:

Trang 40

III Cài đặt thư viện Opensource everywhere.

Thư viện này sẽ giúp chúng ta biên dịch ứng dụng của Qt để chạy trên nền phần cứng ARM

Chúng ta tải một trong 2 gói này về ứng với mỗi phiên bản Ubuntu:

Ngày đăng: 19/04/2014, 23:06

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối của kit Km9260 - Báo cáo lập trình nhúng
Sơ đồ kh ối của kit Km9260 (Trang 7)
Bảng các linh kiện trên kit Km9260 - Báo cáo lập trình nhúng
Bảng c ác linh kiện trên kit Km9260 (Trang 9)
Sơ đồ kết nối Serial DataFlash - Báo cáo lập trình nhúng
Sơ đồ k ết nối Serial DataFlash (Trang 11)
Sơ đồ kết nối NAND FLASH - Báo cáo lập trình nhúng
Sơ đồ k ết nối NAND FLASH (Trang 12)
Sơ đồ chân của khe cắm kết nối mở rộng SCI - Báo cáo lập trình nhúng
Sơ đồ ch ân của khe cắm kết nối mở rộng SCI (Trang 14)
Sơ đồ chân của khe cắm kết nối mở rộng SPI - Báo cáo lập trình nhúng
Sơ đồ ch ân của khe cắm kết nối mở rộng SPI (Trang 15)
Sơ đồ chân của khe cắm kết nối mở rộng Uart, Adc, Twi - Báo cáo lập trình nhúng
Sơ đồ ch ân của khe cắm kết nối mở rộng Uart, Adc, Twi (Trang 16)
Bảng  Sơ đồ chân của khe cắm giao tiếp JTAG ICE - Báo cáo lập trình nhúng
ng Sơ đồ chân của khe cắm giao tiếp JTAG ICE (Trang 16)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w