Giới thiệu tổng quan về CCS

Một phần của tài liệu Thuật toán xử lý ảnh trên kit DSP (Trang 30 - 113)

CCS cung cấp một IDE để kết hợp chặt chẽ những công cụ phần mềm CCS bao gồm những công cụ để sinh code như một trình biên dịch C, một assembler và một linker. Nó có khả năng đồ họa và hỗ trợ gỡ lỗi thời gian thực.

C compiler biên dịch một chương trình nguồn C với định dạng *.c thành một file assembly với định dạng *.asm . Trình biên dịch assembler lại assembles một file *.asm thành file ngôn ngữ máy ( *.obj ) .

Linker tổng hợp các file đối tượng ngôn ngữ máy và đối tượng thư viện dùng như đầu vào để tạo ra các file thực thi *.out . File thực thi này biểu diễn một định dạng file đối tượng chung được kết nối ( COFF: Common Object File Format ) , phổ biến trong hệ thống Unix-based .

Các file trong một project CCS:

*.out có thể được load và chạy trực tiếp xuống board DSP. *.pjt là file project , tạo và xây dựng, đặt tên một project. *.c là chương trình mã nguồn C.

*.asm là chương trình mã nguồn assembly được tạo bởi người dùng thông qua C compiler hoặc linear optimizer.

*.sa là linear assembly source program. *.h là header support file.

*.lib là file thư viện.

*.cmd : file command linker, có nhiệm vụ map phiên làm việc tới bộ nhớ. *.obj là file đối tượng được tạo bởi assembler.

*.out là file thực thi,được tạo bởi linker để load và chạy chương trình trên TMS320DM642 board .

Hình 1. 6 Sơ đồ biên dịch của chương trình 1.4.2. Ngôn ngữ lập trình trên CCS với DSP

Các ứng dụng DSP thường có yêu cầu hiệu năng cao. Do vậy các lập trình viên thường sử dụng ngôn ngữ assembly. Tuy rất nó hiệu quả nhưng thời gian đưa ra sản phẩm lâu dẫn đến việc sử dụng C trong lập trình cho DSP trở nên phù hợp hơn. Có một số lý do cơ bản để sử dụng C thay cho assembly:

+ C dễ phát triển hơn +C dễ duy trì hơn

+ C tương đối dễ di chuyển

Ngôn ngữ C cho phép bạn xây dựng một chương trình di động và nhanh chóng có thể kiểm tra khả năng thực thi với nó. Các nhà sản xuất có thể thấy được kết quả sớm trong chu kỳ phát triển sản phẩm. Tuy nhiên ngôn ngữ C vẫn có vấn đề riêng của nó, bắt nguồn từ khoảng cách giữa ngôn ngữ lập trình , thiết kế và phần cứng. ANSI C không được thiết kế như một ngôn ngữ xử lý tín hiệu. Nó nhấn mạnh vào thiết kế hệ thống chứ không phải là toán học. Do vậy ANSI C không phải là ngôn ngữ tự nhiên nhất để thực hiện thuật toán DSP.

Các bộ vi xử lý DSP có nhiều yếu tố để tăng sự tương thích, chẳng hạn như chế độ tối ưu địa chỉ. Do vậy trong thiết kế vi xử lý, DSP thường sử dụng assembly trong các đoạn mã yêu cầu hiệu năng quan trọng.

Với tất cả các lý do trên , hiệu suất của mã biên dịch có thể thấp hơn so với assembly.

Ngôn ngữ lập trình C cung cấp một mô hình tính toán thống nhất. Một lập trình viên có thể giả định chương trình của mình sẽ có kết quả tương tự trên nền

tảng nào. Tuy mô hình thực thi trên các nền tảng có khác nhau.

C cũng giả định một bộ nhớ nền tảng lớn. Trên thực tế, hiệu năng truy cập bộ nhớ trong một số trường hợp có thể là nhân tố chính ảnh hưởng tới hiệu suất ứng dụng.

Các tính năng phần cứng là rất cấn thiết để xử lý hiệu quả nhưng không được hỗ trợ trong C. Do vậy để xây dựng được các chương trình có hiệu năng cao ta không thể bỏ qua các nền tảng phần cứng. Các chương trình sẽ được tăng tốc khi có chương trình chuyên dụng cho phần cứng cụ thể. Tuy nhiên điều này sẽ làm cho chương trình lớn hơn, phức tạp hơn và ít di động hơn.

1.4.3. Download,cài đặt và làm việc với Code Composer Studio

1.4.3.1. Download Code Composer Studio 5.3 và CCS 3.1

B1. Vào website http://processors.wiki.ti.com/index.php/Download_CCS

B2. Download bản 5.3 off-line Installers B3. Thực hiện cài đặt trên máy

B4. Đăng ký một tài khoản trên trang ti.com và kích hoạt tài khoản B5. Download file active và sử dụng file đó để active CCS

Vì hiện nay các trang web của TI không còn hỗ trợ trực tiếp cho việc download CCS 3.1. vì vậy phải gửi mail cho họ để xin lại đường link down. Khi down được ta chỉ việc click vào file launch.exe và cài đặt bằng việc click “next”, và cuối cùng là “finish”

Lý do phải cài 2 phiên bản khác nhau của CCS này là vì CCS 5.3 thì không tương thích với việc debug code cho TMS320DM642 nhưng phần mềm này có thể nạp được file out xuống kit EVMDM642. Trong khi đó CCS 3.1 lai chỉ làm việc được trong môi trường Win XP, và có thể debug code tạo file out. Nhưng bản CCS 3.1 lại không nạp được code xuống EVMDM642.

Ở đây có một chú ý là chúng em sử dụng máy ảo để chạy Win XP và cài đặt CCS 3.1 trên đó. Còn trên Win 7 32 bít chúng em cài CCS 5.3 ( không dùng Win 7 64 bit bởi vì chạy trên Win 7 64 bít gặp khá nhiều trục trặc do không tương thích môi trường ). Thêm nữa chún em chưa sử dụng máy thật XP để chạy CCS 3.1 nên cũng chưa giám khẳng định là trên Win XP chạy tại máy thật thì CCS có thể debug, compile và run nạp code xuống kit hay không.

Trong đồ án này chúng em sử dụng gói example đi kèm board mà TI cung cấp download tại địa chỉ: http://www.mediafire.com/?os2bez5d2lje48h . Khi

download về sẽ được một file có tên là evmdm642.zip , Trong file này có những file nhỏ: demo chứa những file out,có thể lấy những file này chạy luôn được chương trình. File docs là file chứa những tài liệu tham khảo cho việc tìm hiểu về cách sử dụng board DSP evmdm642 . file examples chứa những ví dụ được TI viết sẵn, những ví dụ này miêu tả những chức năng cơ bản của board. File gel chứa file evmdm642.gel , khi cấu hình thiết bị đích chúng ta cần phải add file này vào.

Hình 1. 7 Thư mục chứa file gel 1.4.3.2. Bắt đầu làm việc với CCS

 Với CCS 3.1

Khi ta download về xuất hiện thư mục CCS 3.1 và ta click vào file launch.exe và bắt đầu tiến hành setup

Hình 1. 8 Bắt đầu cài đặt CCS 3.1 Sau đó ta sẽ nhấn chọn “Install Product”:

Hình 1. 9 Lựa chọn cài đặt CCS 3.1 Tiếp tục ta nhấp chọn “ C6000 Code Composer Studio v3.1”

Hình 1. 10 Lựa chọn dòng chip hỗ trợ

Sau đó CCS 3.1 sẽ hiện ra màn hình cài đặt thông thường và nhiệm vụ của ta bây giờ là click “next” và “finish” và hoàn thành cài đặt.

Hình 1. 11 Hoàn thành cài đặt CCS3.1

cho ta làm việc:

Hình 1. 12 Biểu tượng của chương trình sau khi cài đặt

Để làm việc với CCS 3.1, đầu tiên ta phải chạy file “Setup CCStudio 3.1” để chọn mô hình chíp cho CCStudio 3.1:

Hình 1. 13 Cài đặt cho CCS3.1

Sau đó ta phải set “properties” cho con DM642 của ta để nó phù hợp với TMS320DM642 trên board của ta.

Hình 1. 14 Lựa chọn thiết lập

Khi hộp thoại properties của DM642 hiện ra ta sẽ thiết lập lại các thông số của nó như sau.

Hình 1. 15 Thiết lập Properties cho DM642

Ở đây có hai option cần chú ý là Gel file và CPU Clock. Về Gel file thì ta chọn đường dẫn tới file gel của chúng ta. Và CPU clock ta thay đổi từ 600 lên 720 MHz. Sau khi chọn xong ta click “Save & Quit” .Khi đó cửa sổ làm việc với code của CCS 3.1 sẽ hiện lên.

Hình 1. 16 Cửa sổ làm việc của CCS 3.1

Vì trong đồ án của chúng em sẽ sử dụng những ví dụ có sẵn trong gói phần mềm đi kèm theo board EVMDM642,do đĩa đi kèm theo board đã bị bị mất nên chúng em sẽ download gói evmdm642.zip này trên internet. Để mở một project có sẵn chúng ta sẽ click chuột phải vào “project” và chọn “ open project” rồi tìm đến thư mục chứa file “.pjt” để add vào của sổ làm việc của ta.

Hình 1. 17 Lựa chọn mở project

ngôn ngữ khác. Nên nhóm sẽ không nêu thêm chi tiết về các làm việc với nó nữa.

 Về làm việc với CCS v5.3

Sau khi click đúp vào biểu tượng trên desktop màn hình khởi động của CCS sẽ hiện lên như sau:

Hình 1. 18 Màn hình cài đặt CCS 5.3

Ta sẽ thấy suất hiện 1 block nhắc việc chọn đường dẫn cho workspace,có thể chọn workspace như mặc định hoặc tùy chọn vào foder mà mình muốn chứa.

Hình 1. 19 Lựa chọn thư mục làm việc

Ở đây lần đầu tiên khi sử dụng CCS ta sẽ được nhắc để “active version” cho CCS ta có thể chọn FREE licence,hoặc vào web của TI để active.

Hình 1. 20 Tùy chọn License

CCS tích hợp môi trường phát triển IDE sẽ được load và ta sẽ thấy màn hình welcome như sau:

Hình 1. 21 Màn hình làm việc CCS 5.3 Để tạo một project mới:

Khi muốn tạo một project mới,ở của sổ giao diện chính ta chọn File sau đó chọn New và New CCS project. Lúc này một dialog box sẽ suất hiện và có các lựa

chọn ban đầu cho ta:

a. Trong “project name” ta đánh tên cho project, chú ý là tên chúng ta đặt cho project nên mang tính gợi nhớ, không có khoảng trắng, không có số và gạch ngang ở đầu tên.

b. Trong hộp “ Family” box ta chọn C6000.

c. Trong “ Variant “ box ta chọn loại của vi xử lý. Nếu không có ta có thể để mặc định.

d. Dưới “ Project templates and examples” ta chọn empty project.

Hình 1. 22 Tạo mới 1 project

Trong “advanced settings” .Tại “ linker command file “ tìm tới thư mục chứa và chọn DM642.cmd file . Những option khác ta chọn để mặc định.

Hình 1. 23 Tùy chọn cho project khởi tạo

CCS sẽ tạo một thư mục trong workspace để thêm file vào trong đó. Thông tin của project được chứa trong một số các file XML,như .ccsproject. Chúng ta không nên sửa đổi các file này. Đề thêm file vào project, ta click chuột phải vào Project Explorer window và chọn “ Add files…”

Hình 1. 24 Thêm file cho project

Khi add file,chúng ta sẽ chọn đường dẫn tới nơi chứa file cần add, sau đó click Open, Copy files và click OK.

Hình 1. 25 Tùy chọn thêm file

Chú ý khi ta muốn chọn những file của project có sẵn để chạy lại,ta chọn tất cả các file trừ file .cmd có trong project đó,vì file cmd đã được ta tạo ra khi ta tạo project ở bước “advanced option”.

Building the Project:

Để build project ,chọn project từ “main menu” và chon “build Project”. CCS bây giờ sẽ biên dịch và link project tới thủ tục thực hiện. Nếu tất cả diễn ra tốt,cửa sổ console sẽ show “Build Finish ” .

Hình 1. 26 Build 1 project Load project vào Target Hardware

Khi project đã được build,chúng ta cần load project xuống target hardware, và sau đó chạy nó. Giao diện phần cứng được điều khiển bởi file cấu hình target,cái mà ta sẽ add project xuống.Đầu tiên ta sẽ click chuột phải vào Add files sau đó điều chỉnh đường dẫn tới nơi chứa các file .ccxml và .gel sau đó click open, phải chắc chắn rằng chúng ta đã chọn Copy files và click OK.

Trong Project Explorer window,double-click vào file .ccxml để mở nó. Chọn Advance tab sau đó click vào lựa chon C6000. Dưới Cpu Properties ( ở cột bên phải ) phải chắc chắn rằng chúng ta đã chọn đúng file .Gel.

Hình 1. 27 Nạp file .out xuống KIT Để chạy chương trình trên Target hardware

Bây giờ project được load xuống target hardware . Ta chọn Run từ menu chính và click Resume . Giả sử rằng bạn đã kết nối đường vào và đường ra cho speakers/ headphones vào board, bạn sẽ nghe thấy âm thanh phát ra từ phần cứng. Ta có thể suspend và resume chương trình nếu cần.Để load một file out khác xuống Kit ta vào tab Run chọn “ Debug Configutions”

Chú ý:bước này rất quan trọng vì thực tế trong khi thực hiện project,trình biên dịch CCS v5.3 không phù hợp với biên dịch code cho board evmdm642. Chính vì vậy nên chỉ dùng CCS v5.3 để debug và chạy chương trình ( chay file .out ) . Trong quá trình debug có thể trình biên dịch vẫn báo lỗi. do code và những thư viện hỗ trợ board , hỗ trợ chip ( BSL,CSL ) . không tương thích với phiên bản CCS này. Nhưng chúng ta vẫn có thể “ Run ”, nạp code xuống board bình thường. Trong quá trình nạp code xuống board phải kiểm tra và đảm bảo cả hai đèn của JTag emulator blackhawk usb-560m đều sáng xanh. Nếu đèn usb bị đỏ thì chúng ta phải kiểm tra lại kết nối , và reset lại nguồn cho nó bằng cách rút chân cắm nguồn ra rồi cắm lại . Trong quá trình chạy chương trình chúng ta cũng nên thường xuyên reset board để board có thể hoạt động đúng.

Hình 1. 28 Thiết lập file .out mặc định cho debug

Sau đó để chọn file out ta nhấp chọn “ File System” và tìm đến thư mục chứa file out mà ta cần chạy.

CHƯƠNG 2: QUY TRÌNH XỬ LÝ DỮ LIỆU VIDEO CỦA DSP BOARD EVMDM642

2.1. Sơ đồ đường đi của luồng dữ liệu video

Hình 2. 1 Sơ đồ luồng dữ liệu video

Hình trên thể hiện quá trình dữ liệu đi từ khối thu ảnh , qua board DSP để thực hiện quá trình xử lý rồi đến khối hiển thị. Ta sẽ đi vào chi tiết của việc dữ liệu đi qua các khối và quá trình chi tiết của việc các khối đối xử với dữ liệu sau. Về cơ bản, Quá trình xử lý video data sẽ được chia ra làm hai phần. Phần thứ nhất là phần capture và phần thứ hai là phần display.Ban đầu camera sẽ thu ảnh,và dòng dữ liệu sẽ được giải mã ở bộ video decoder sau đó dòng dữ liệu được đẩy sang bộ đệm FIFO của video port ,bộDMA controllercó nhiệm vụ thực hiện truy cập bộ nhớ trực tiếp,giảm thiểu tính toán,xử lý cho CPU và xác định ngưỡng để lấy dữ liệu từ bộ đệm của video port chuyển sang bộ nhớ của DSP. Phục vụ cho quá trình xử lý dữ liệu mà ta thực hiện trên DSP. Dữ liệu sau khi qua quá trình xử lý trong DSP được phục vụ cho phần hiển thị. Dòng dữ liệu từ bộ đệm frame đặt trong bộ nhớ sẽ được chuyển tới video port FIFO bởi bộ truyền EDMA. Video port sẽ đưa dữ liệu quay lại bộ mã hóa video bên ngoài để hiển thị. Ngắt EDMA được thực hiện lập tức ngay sau khi toàn bộ frame được truyền từ bộ nhớ tới video port. Dưới đây chúng ta sẽ bắt đầu tìm hiểu về quá trình capture và display được đảm nhiệm bởi các thành phần của board.

2.2. Video Capture Port

2.2.1. Cấu hình Video Capture FIFO

Trong suốt quá trình video capture,video port FIFO có một trong bốn cấu hình phụ thuộc vào mode capture. Cho mode BT.656 ,FIFO được chia thành hai kênh A và B. như biểu diễn ở hình 2.1 mỗi FIFO được cấp xung độc lập với nhau, tương ứng với FIFO mà đầu vào là một nửa số bus của video port :VDIN[9-0] và FIFO mà đầu vào là một nửa số bus còn lại của video port : VDIN[19-10]. Mỗi bộ đệm FIFO của kênh được chia nhỏ thêm thành các phần bộ đệm Y,Cb,Cr với các con trỏ đọc và thanh ghi ghi riêng biệt (YSRCx,CBSRCx,and CRSRCx).

Hình 2. 2 Cấu hình BT .656 Video Capture FIFO

Đối với raw video 8/10-bit, FIFO được chia thành hai kênh A và B, như trong Hình 2.2. Mỗi FIFO được cấp xung độc lập với FIFO kênh A nhận dữ liệu từ các VDIN [9-0] là một nửa số bus của video port và FIFO kênh B nhận dữ liệu một nửa số bus còn lại từ VDIN [19-10] . FIFO mỗi kênh có một con trỏ ghi và thanh ghi đọc riêng biệt (YSRCx). Cấu hình FIFO là giống hệt nhau cho TSI capture, nhưng kênh B bị vô hiệu hóa.

Hình 2. 3 Cấu hình 8/10-Bit Raw Video Capture và TSI Video Capture FIFO Cho Y / C capture video, FIFO được cấu hình như một kênh duy nhất chia nhỏ thành các bộ đệm nhỏ hơn Y, CB, và Cr với con trỏ ghi và thanh ghi đọc riêng

Một phần của tài liệu Thuật toán xử lý ảnh trên kit DSP (Trang 30 - 113)

Tải bản đầy đủ (PDF)

(113 trang)