View Single Post
Old 26-04-2008, 06:18 PM   #20
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi nghean View Post
Em đã thử khai báo
float __attribute__ ((space(psv), address (0x0200)))
Sin[2001];
bởi vì đang cần tính các giá trị sin sau mới đưa vào bảng
nhưng khi biên dịch báo lỗi
Link Error: Could not allocate section .data_0x200 at 0x200
Link Error: Could not allocate program memory
vậy có cách nào khai báo môt mảng như trên tính các giá trị rồi lưu vào ROM k anh?
cảm ơn anh
Để lưu bảng vào flash, các phần tử của bảng phải là hằng số vào thời điểm biên dịch mã nguồn. Do đó, bạn nên dùng một công cụ khác để tạo ra bảng giá trị trước (Excel chẳng hạn), rồi copy các giá trị đó vào khai báo bảng hằng số của bạn.

Trong khai báo trên, bạn đã bỏ mất từ khóa const, do đó thông báo lỗi đầu tiên cho thấy trình biên dịch thông báo không thể cấp phát bộ nhớ dữ liệu cho bạn ở địa chỉ 0x200 (vì trình biên dịch hiểu là bạn cần RAM cho 2001 ô nhớ kiểu float, bắt đầu ở địa chỉ 0x200).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn