Sử dụng Probe Point và File I/O

Một phần của tài liệu nghiên cứu các quy trình thực hiện hệ thống xử lý trong miền thời gian thực trên bo mạch nhúng DSP (Trang 26)

Probepoint là kỹ thuật cho phép chúng ta đọc dữ liệu vào từ một file trên máy tính. Đó là một công cụ hữu ích trong quá trình phát triển giải thuật, vì nó đỡ cho chúng ta phải thêm vào những đoạn mã vào ra với file trên máy tính. Chúng có thể được sử dụng để:

 Vận chuyển dữ liệu vào từ một file trên máy tính tới một bộ đệm (một mảng nào đó) trên target (DSP thực hoặc simulator) để kiểm tra giải thuật.

 Vận chuyển dữ liệu ra từ một bộ đệm trên target đến một file trên máy tính (host) để phân tích kết quả.

 Để cập nhật cửa sổ, chẳng hạn như dữ liệu cho đồ thị.

Chúng ta sẽ tạo ra các điểm này bằng cách di chuột đến vị trí ta muốn khảo sát quá trình vào ra dữ liệu. Click chuột phải và chọn Toggle Software Probe point như

Đồ án tốt nghiệp đại học Trang 27

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

 Khi đấy ở góc màn hình sẽ xuất hiện dấu hiệu như ở hình dưới đây.

Muốn hủy một điểm Probe Point ta click chuột phải lên vị trí chứa điểm ấy và lựa chọn như ở hình dưới. Còn nếu muốn hủy tất cả các điểm Probe Point thì ta click

Đồ án tốt nghiệp đại học Trang 28

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Một hạn chế khi sử dụng Probe point để khảo sát quá trình truyền thông giữa target và host đó là nó chỉ cho phép chúng ta vào ra các file hex định dạng là file.dat

Khi chèn một Probepoint vào chương trình thì nó được gắn với một file I/O được tạo ra bằng cách vào mục File/ FileIO (Ở đây ta chỉ có thể Add được File.dat.) Một cửa sổ file IO sẽ có dạng như sau:

Đồ án tốt nghiệp đại học Trang 29

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Ví dụ: chương trình SinWave

Ví dụ này thực hiện việc truyền thông ở mức đơn giản giữa host và target bằng cách dùng Break Point và Probe Point. Chương trình này thực hiện nạp file sine.dat từ máy tính vào trong DSP. Dữ liệu nhận được sẽ được DSP xử lí ( ở đây chỉ đơn giản là nhân các giá trị nhận được với hằng số gain = 5 ) sau đó ta truyền kết quả ngược lại cho máy tính. Kết quả của quá trình xử lí này sẽ được lưu lại trên máy tính dưới dạng file là bigSine.dat. Thực hiện ví dụ này thông qua các bước sau:

Bước1: Mở file sinwave.pjt trong đường dẫn E:\program file\ccs\tutorial\sim64xx\sinewave

Bước 3: ReBuild All chương trình và load file sinewave.out vừa được tạo ra.

Bước 4: Mở file nguồn sine.c và đánh dấu điểm Probe Point tại dòng

Đồ án tốt nghiệp đại học Trang 30

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 5: Click File → File I/O. Cửa sổ File I/O xuất hiện như hình dưới.

Bước 6: Click Add File. Cửa sổ File Input xuất hiện. Chúng ta chọn

đường dẫn tới folder sinewave và mở file sine.dat.

Bước 7: Click Add Probe Point cửa sổ Break/Probe Ponts được mở ra

Đồ án tốt nghiệp đại học Trang 31

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Click chuột lên dòng sine.c line 30…. trong trường Probe Point. Trong trường Connect To chọn FILE IN: E:\..\sine.dat như hình trên. Click Replace và sau đó Click

OK.

Bước 8: Trong hộp thoại FILE I/O tại trường Address gõ vào

currentBuffer.input và tại trường Length gõ vào số 100 như hình dưới.

Đồ án tốt nghiệp đại học Trang 32

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 9: Click File → File I/O. Click Tab File Output. Add file

bigsine.dat. Click Add Probe Point. Trong ô Probe Point click lên sine.c line 30…. trong trường Probe Point. Trong trường Connect To chọn FILE IN: E:\..\bigsine.dat. Click lên phím Add ta sẽ có kết quả như hình dưới.

Đồ án tốt nghiệp đại học Trang 33

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 10: Trong hộp thoại File I/O tại trường Address gõ

currentBuffer.output và tại trường Length gõ 100. Kết quả như hình dưới.

Click OK.

Bước 11: Click Run(hoặc ấn F5) để chạy chương trình.

Bước 12: Click Haft để dừng chương trình. Kiểm tra lại file bigsine.dat ta sẽ thấy dung lượng của nó tăng lên.

Bước 13: Click view → Watch Window. Trong Tab Watch1 gõ

Đồ án tốt nghiệp đại học Trang 34

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chúng ta có thể thấy ngay các giá trị của mảng currentBuffer.input

(currentBuffer.out put) các giá trị đầu vào và đầu ra. Chúng ta có thể thay đổi tạm thời các giá trị này để chạy chương trình của chúng ta.Việc này sẽ không ảnh hưởng gì tới file sine.dat gốc.

Đồ án tốt nghiệp đại học Trang 35

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 3 DSP/ BIOS 3.1. Giới thiệu về DSP/BIOS

DSP/BIOS là một thiết kế cho các ứng dụng yêu cầu đồng bộ thời gian thực, truyền thông giữa host-to-target cùng với các công cụ phân tích thời gian thực. DSP/BIOS cung cấp nhiều đoạn tuyến có mức ưu tiên khác nhau, trừu tượng hóa phần cứng và phân tích thời gian thực.

DSP/BIOS được đóng gói dưới dạng các module và có thể liên kết vào trong ứng dụng của chúng ta. Các ứng dụng kết hợp với các hàm chức năng này của DSP/BIOS ( trực tiếp hoặc gián tiếp ) và chúng sẽ được tham chiếu tới trong ứng dụng. Thêm vào đó, công cụ DSP/BIOS cho phép tối ưu hóa kích thước và tốc độ bằng cách vô hiệu hóa các tính năng mà chúng ta không sử dụng.

Chúng ta có thể sử dụng DSP/BIOS để đo đạc phân tích quá trình làm việc bằng cách khảo sát ( probeb), phác họa (traced), và hiển thị trong miền thời gian thực. Các chương trình sử dụng DSP/BIOS Configuration Tool sẽ tận dụng được khả năng đa phân tuyến ( multi – threading ) của DSP/BIOS.

DSP/BIOS được tích hợp với Code Composer Studio, và được hỗ trợ hoàn toàn bởi Texas Instruments. Các đối tượng trong DSP/BIOS có thể cấu hình trên giao diện của DSP/BIOS. Do đó sẽ làm giảm kích thước của đoạn code và tối ưu hóa cấu trúc dữ liệu bên trong. DSP/BIOS API đã chuẩn hoá việc lập trình trên DSP cho một số thiết bị của TI và cung cấp một số các công cụ phát triển lập trình sử dụng đơn giản nhưng rất hiệu quả. Các công cụ này làm giảm yêu cầu về thời gian để lập trình cho DSP. DSP/BIOS cung cấp các API chuẩn , điều này cho phép phát triển các thuật toán cung cấp các đoạn code mà các đoạn code này dễ dàng được tích hợp vào trong hàm chức năng khác…

Đồ án tốt nghiệp đại học Trang 36

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

3.2. Các thành phần của DSP/BIOS

DSP/BIOS API: Chương trình bằng ngôn ngữ C hoặc Assembly có thể được

gọi ra từ 150 hàm DSP/Bios API.

DSP/BIOS Configuration: Bảng công cụ này cho phép bạn khởi tạo và cấu

hình cho DSP/Bios để dùng cho chương trình của bạn.

DSP/BIOS Analysis Tools: Cửa sổ này cho phép bạn có cài nhìn tổng quát

vè hoạt động thời gian thực.Vi dụ, chạy cửa sổ Graph sẽ hiển thị đồ thị hoạt động của các đoạn tuyến.

3.2.1.DSP/BIOS API

DSP/BIOS được thiết kế cho các ứng dụng yêu cầu điều phối thời gian thực

và sự đồng bộ, truyền thông giữa target-host hoặc công cụ thời gian thực. DSP/BIOS cung cấp nhiều module với các mức ưu tiên khác nhau, các công cụ cấu hình.

DSP/BIOS API bao gồm trên 150 hàm thư viện trên ngôn ngữ C. DSP/BIOS

được đóng gói thành các mô đun và có thể được liên kết vào trong chương trình ứng dụng. Những ứng dụng include chỉ những hàm mà nó cần thiết cho ứng dụng. Hơn nữa, công cụ cấu hình của DSP/BIOS cho phép chúng ta tối ưu kích thước đoạn mã chương trình và như vậy tăng tốc độ của chương trình chạy bằng cách tách những tính năng DSP/BIOS riêng ra khỏi chương trình

Bảng 3-1 Các module API của DSP/BIOS

Module Description

ATM Module Atomic functions written in assembly language BUF Module Maintains buffer pools of fixed size buffers C62 and C64 Module Target-specific functions

CLK Module System clock manager DEV Module Device driver interface

Đồ án tốt nghiệp đại học Trang 37

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Global Settings Global setting manager HOOK Module Hook function manager HST Module Host channel manager HWI Module Hardware interrupt manager

IDL Module Idle function and processing loop manager LCK Module Resource lock manager

LOG Module Event Log manager MBX Module Mailboxes manager

MEM Module Memory manager

PIP Module Buffered pipe manager PRD Module Periodic function manager QUE Module Queue manager

RTDX Module Real-time data exchange manager SEM Module Semaphores manager

SIO Module Stream I/O manager STS Module Statistics object manager SWI Module Software interrupt manager SYS Module System services manager TRC Module Trace manager

TSK Module Multitasking manager std.h and stdlib.h

functions

Standard C library I/O functions

Đồ án tốt nghiệp đại học Trang 38

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

DSP/BIOS configuration cho phép chúng ta khởi tạo và cấu hình các đặc tính

của DSP/BIOS để sử dụng cho chương trình của chúng ta.

3.2.3. DSP/BIOS Analysis Tools.

Các công cụ phân tích hỗ trợ cho môi trường CCS bằng cách cho phép phân tích tính thời gian thực của các ứng dụng DSP/BIOS. Ta có thể giám sát trực quan một ứng dụng DSP khi nó đang chạy với sự ảnh hưởng lên tính thời gian thực của các ứng dụng

Đồ án tốt nghiệp đại học Trang 39

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

là nhỏ nhất. DSP/BIOS analysis tools được đưa vào trong DSP/BIOS menu, thể hiện như trong hình dưới đây:

Khác với các công cụ debug truyền thống, các công cụ trên được mở rộng để thực thi chương trình, điều này yêu cầu chương trình phía target phải chứa các lệnh thời gian thực. Bằng việc sử dụng các API và các đối tượng, người phát triển sẽ tự động đo đạc phía target để bắt giữ và tải lại các thông tin thời gian thực lên cho host thông qua DSP/BIOS analysis tools của Code Composer Studio.

Đồ án tốt nghiệp đại học Trang 40

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

3.3. Chuẩn bị tạo dự án làm việc với DSP/BIOS

Một dự án có sử dụng DSP/BIOS có cấu trúc khác với một dự án thông thường. Đó là các thư viện hàm, các file header, và đặc biệt một dự án của DSP/BIOS không thể thiếu file cấu hình. Nó chứa thông tin về các mô đun và đối tượng của DSP/BIOS được sử dụng trong chương trình. Các bước chuẩn bị một dự án DSP/BIOS bao gồm tạo file cấu hình và thêm file cấu hình vào dự án.

Đồ án tốt nghiệp đại học Trang 41

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Để sử dụng DSP/BIOS chắc chắn phải tạo một file cấu hình. Nhiệm vụ của file cấu hình là định nghĩa các đối tượng và các thuộc tính cho chúng. Công cụ cấu hình sẽ tạo ra các file cấu hình sau: cdb, cmd, cfg.h, cfg.h62, cfg.s62, cfg_c.c.

Tóm lại, bước cấu hình chính là tạo ra một đối tượng trong mô đun được sử dụng.

Thêm file cấu hình vào dự án

Trong bước trước ta mới chỉ tạo ra các file cấu hình. Bây giờ là lúc ta thêm nó vào dự án. Đầu tiên là thêm file cdb vào, CCS sẽ tự động lôi theo các file cfg.s62 và cfg_c.c vào. Tiếp theo là thêm file cmd và cuối cùng rebuild lại dự án.

Tóm lại trong bước này ta thêm một số file cần thiết và loại bỏ những file không cần thiết.

Ví dụ: Thank_you.pjt

Ở chương trước ta đã biết cách tạo ra một Project mới với tên newproject1.pjt, đây là chương trình in ra câu “Thank you for your attention. Have a nice day!” sử dụng các hàm DSP/BIOS API. Các bước khởi tạo chương trình này như sau:

Bước 1: Tạo project mới có tên là Thank_you.pjt.

Bước 2: Tạo một file cấu hình DSP/BIOS mới với tên là thank_you.cdb bằng cách click vào File → New → DSP/BIOS configuration. Cửa sổ New hiện ra. Chọn dsk6416.cdb ( loại DSK mà chúng ta làm việc ) và lick OK.

Đồ án tốt nghiệp đại học Trang 42

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Cửa sổ file DSP/BIOS sẽ hiện ra cho chúng ta làm việc. Lưu lại file với tên là

Đồ án tốt nghiệp đại học Trang 43

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Thêm file thank_you.cdb vừa tạo ra vào project thank_you.pjt của chúng ta. Mở rộng project thank_you.pjt ở bên trái màn hình làm việc sẽ thấy trong mục DSP/BIOS xuất hiện file thank_you.cdb còn ở Generated Files sẽ xuất hiện ba file

thank_youcfg.cmd, thank_youcfg.s62 và thank_youcfg_c.c, ba file này tự động được tạo ra khi ta tạo file cấu hình thank_you.cdb .

Đồ án tốt nghiệp đại học Trang 44

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 3: Tạo ra file nguồn thank_you.c như đã chỉ ra ở mục 2.2 của chương 2. Add file này vào chương trình thank_you.pjt.

Bước4: Click đúp lên file thank_you.cdb. Mở phân vùng Intrumentation. Click

chuột phải lên LOG-Event Log Manager chọn Insert LOG để tạo ra một đối

Đồ án tốt nghiệp đại học Trang 45

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Đổi tên đối tượng LOG mới này thành trace như hình sau:

Bước 5: Rebiuld chương trình. Load file thank_you.out vừa được tạo ra. Nếu chúng ta đang cắm dsk6416 với máy tính thì chương trình sẽ được nạp và chạy. Nhưng nếu chúng ta chỉ mô phỏng trên phần mềm thì sẽ có báo lỗi. Nguyên nhân là do trong file cấu hình thank_you.cdb đã tự động mặc định cho việc sử dụng RTDX cho việc truyền thông host – target thông qua cổng kết nối USB theo chuẩn JTAG. Để chương trình biên dịch mà không có lỗi chúng ta sẽ sữa lại cấu hình RTDX như sau. Click chuột phải lên RTDX và chọn Properties như hình sau.

Đồ án tốt nghiệp đại học Trang 46

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Một cửa sổ hiện ra, trong trường RTDX Mode ta chọn là Simulator như hình dưới.

Rebuil All lại toàn bộ chương trình. Load file thank_you.out và chạy thử.

Đồ án tốt nghiệp đại học Trang 47

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Cửa sổ Message Log hiện ra, trên đó có dòng chữ “Thank you for your attention. Have a nice day!” như hình sau.

Đồ án tốt nghiệp đại học Trang 48

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 4 KỸ THUẬT TRUYỀN THÔNG

4.1.Giới thiệu

Một vấn đề quan trọng khi xây dựng các ứng dụng trên DSP đó là sự truyền thông giữa chúng như thế nào? Cách xây dựng các chương trình cho phép thực hiện quá trình truyền thông giữa các DSP với nhau. Chương này sẽ giúp chúng ta hiểu rõ hơn về điều đó

4.2. Kỹ thuật truyền thông EDMA (Enhanced Direct Memory Access)[2]

EDMA là mô hình vào ra đặc thù của C6146 cho phép truyền đồng bộ và có thể kích hoạt bởi bất kì sự kiện nào đó( ví dụ như ngắt). Nó hoạt động độc lập với CPU, để làm việc với EDMA ta sử dụng các hàm API và các macro để thiết lập.

Đây là mô hình vào ra đặc thù của DSK 6416. Đó là sự kết hợp của cả phần cứng lẫn phần mềm. Về mặt phần cứng đó là bộ điều khiển EDMA. Về mặt phần mềm đó là việc điều phối giữa ngắt cứng EDMA và ngắt mềm xửjf lý

Các tính năng chuyên dụng của bộ điều khiển EDMA Controller là:  Multichannel Data bus CPU IO port Memory 1 EDMA Controller 2 3 1 Enable EDMA

2 EDMA Read data from IO

3 EDMA Write data to Memory

Đồ án tốt nghiệp đại học Trang 49

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Transfer Complete Code (TCC)

Linked Transfer

Mutichannel

Bộ điều khiển EDMA có thể điều khiển được nhiều kênh DMA cùng một lúc.

Một phần của tài liệu nghiên cứu các quy trình thực hiện hệ thống xử lý trong miền thời gian thực trên bo mạch nhúng DSP (Trang 26)

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

(111 trang)