Trích:
Nguyên văn bởi scentoflove
Trong TUT về UART của anh Nam có khai báo chuổi "Xin chào !" trong vùng psv. Anh Nam cho e hoi vùng psv nay là gi vậy, em đọc datasheet của ds33F Family thì có đề cập MCU va DSP instruction, e đọc nhưng ko hiểu lắm anh có thể giải thích về chổ này ko?
|
Lấy một datasheet của dsPIC nào đó (dsPIC30F4012 chẳng hạn), ở mục Core Overview có giải thích về PSV (Program Space Visibility). Tôi tóm lược ý như sau: Một trong hai cách truy xuất dữ liệu trong vùng nhớ chương trình là ánh xạ 16k word bộ nhớ chương trình vào vùng 32k byte nằm ở vùng địa chỉ cao của không gian bộ nhớ dữ liệu. Phương pháp truy xuất này được gọi là PSV (Program Space Visibility). Khi đó có thể dùng các phương pháp truy xuất bộ nhớ dữ liệu để truy xuất vùng nhớ chương trình đã được ánh xạ đó. Trang 16k nào được ánh xạ phụ thuộc vào giá trị của thanh ghi PSVPAG.
Các trình hợp dịch và biên dịch đã có các hàm hay macro có sẵn để xác định địa chỉ trang và địa chỉ bắt đầu trong trang đó của 1 vùng nhớ cụ thể (đã được định nghĩa và gán giá trị trước đó, chẳng hạn như các chuỗi hằng). Do đó chúng ta chỉ cần đặt giá trị thích hợp (địa chỉ trang PSV của vùng dữ liệu cần truy xuất) vào thanh ghi PSVPAG, sau đó lấy địa chỉ offset của vùng dữ liệu (hằng) cần truy xuất vào một thanh ghi chỉ số nào đó chẳng hạn, và truy xuất như là nó đang nằm trong RAM dữ liệu (tất nhiên đây là các dữ liệu chỉ đọc, trong trường hợp bình thường).
Thân,