30.10.2014 Views

o_195h4n6al16jb186b1b2qs7fgssa.pdf

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

specific<br />

libraries.)<br />

When compiling an application, dsp.hmust be referenced (using #include) by all<br />

source files which call a function in the DSP Library or use its symbols or<br />

typedefs.<br />

When linking an application, libdsp-omf.amust be provided as an input to the<br />

linker<br />

(using the --libraryor -llinker switch) such that the functions used by the<br />

application may be linked into the application.<br />

The linker will place the functions of the DSP library into a special text section<br />

named<br />

.libdsp. This may be seen by looking at the map file generated by the linker.<br />

2.2.2 Memory Models<br />

The DSP Library is built withthe “small code” and “small data” memory models<br />

to create the smallest library possible. Since several of the DSP library functions<br />

are written<br />

in C and make use of the compiler’s floating-point library, the MPLAB C30<br />

linker script<br />

files place the .libmand .libdsptext sections next to each other. This ensures that<br />

the DSP library may safely use the RCALL instruction to call the required<br />

floating-point<br />

routines in the floating-point library.<br />

2.2.3 DSP Library Function Calling Convention<br />

All the object modules within the DSP Library are compliant with the C<br />

compatibility<br />

guidelines for the dsPIC30F DSC and follow the function call conventions<br />

documented<br />

in the Microchip MPLAB C30 C Compiler User’s Guide. Specifically,<br />

functions may use<br />

the first eight working registers (W0 through W7) as function arguments. Any<br />

additional<br />

function arguments are passed through the stack.<br />

The working registers W0 to W7 are treated as scratch memory, and their values<br />

may<br />

not be preserved after the function call. On the other hand, if any of the working<br />

registers W8 to W13 are used by a function, the working register is first saved,<br />

the register<br />

is used and then its original value is restored upon function return. The return<br />

value of<br />

a (non void) function is available in working register W0 (also referred to as<br />

WREG).<br />

When needed, the run time software stack is used following the C system stack<br />

rules<br />

described in the MPLAB C30 Compiler User’s Guide. Based on these<br />

guidelines, the<br />

object modules of the DSP Library can be linked to either a C program, an<br />

assembly<br />

program or a program which combines code in both languages.<br />

thói quen trong thư viện nổi-điểm.<br />

2.2.3 DSP Thư viện Chức năng gọi hội nghị<br />

Tất cả các mô-đun đối tượng trong thư viện DSP là phù hợp với khả năng tương<br />

thích C<br />

hướng dẫn cho dsPIC30F DSC và thực hiện theo các quy ước chức năng gọi tài<br />

liệu<br />

trong hướng dẫn người sử dụng Microchip MPLAB C30 C Compiler. Cụ thể, c<br />

thể sử dụng chức năng<br />

tám đăng ký làm việc đầu tiên (W0 qua W7) như các đối số chức năng. Bất kỳ<br />

bổ sung<br />

đối số chức năng được chuyển qua ống khói.<br />

Các hoạt động đăng ký W0 để W7 đang được coi là bộ nhớ đầu, và giá trị của<br />

chúng có thể<br />

không được bảo quản sau khi cuộc gọi chức năng. Mặt khác, nếu một trong các<br />

hoạt động đăng ký W8 để W13 được sử dụng bởi một chức năng, đăng ký làm<br />

việc lần đầu tiên được cứu, đăng ký<br />

sử dụng và sau đó là giá trị ban đầu của nó được phục hồi chức năng sau khi trở<br />

lại. Giá trị trả lại<br />

một (không void) chức năng có sẵn trong hoạt động đăng ký W0 (còn được gọi<br />

là WREG).<br />

Khi cần thiết, thời gian chạy phần mềm ngăn xếp được sử dụng theo các quy tắ<br />

ngăn xếp hệ thống C<br />

được mô tả trong hướng dẫn người sử dụng MPLAB C30 Compiler. Dựa trên<br />

các nguyên tắc này, các<br />

module đối tượng của Thư viện DSP có thể được liên kết đến một chương trình<br />

C, một hội đồng<br />

chương trình hoặc một chương trình kết hợp mã trong cả hai ngôn ngữ.<br />

2.2.4 Các loại dữ liệu<br />

Các hoạt động được cung cấp bởi thư viện DSP đã được thiết kế để tận dụng lợ<br />

thế<br />

các tập lệnh DSP và các tính năng kiến trúc của dsPIC30F DSC. Trong ý nghĩa<br />

này,<br />

hầu hết các hoạt động được tính bằng số học phân đoạn.<br />

Thư viện DSP định nghĩa một kiểu phân đoạn từ một loại nguyên:<br />

ifndef phân đoạn<br />

typedef int phân đoạn;<br />

# endif<br />

Các loại dữ liệu phân đoạn được sử dụng để đại diện cho dữ liệu có 1 dấu hiệu<br />

bit và 15<br />

bit phân đoạn. Dữ liệu trong đó sử dụng định dạng này thường được gọi là<br />

"1,15" dữ liệu.<br />

DSP Thư viện<br />

2004 Microchip Technology Inc DS51456B trang 11<br />

Đối với các chức năng mà sử dụng số nhân, kết quả được tính toán bằng cách sử<br />

dụng ắc quy 40-bit, và "9,31" số học được sử dụng. Định dạng dữ liệu này có 9<br />

bit dấu hiệu / độ lớn và<br />

31 bit phân đoạn, trong đó quy định thêm tính toán khoảng không trên phạm vi<br />

(-1.00 Đến ~ + 1,00) được cung cấp bởi các định dạng 1.15. Đương nhiên khi<br />

các chức năng cung cấp

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!