PDA

View Full Version : Hỏi về việc sử dụng bộ nhớ của dspic30f6014a


uydanh
03-11-2008, 01:05 AM
Mình đang viết một chương trình cần khá nhiều dung lượng bộ nhớ. Trong khi đó con dspic30f6014a chỉ có 8K RAM, trong khi đó lại có 144k Flash program space. Một suy nghĩ bất chợt (có thể hơi tầm bậy tí) là sử dụng Flash program space để lưu dữ liệu.
Như vậy có ổn ko ta. Hi vọng mọi người có thể bỏ chút thời gian giảng giải dùm mình chổ này.
Cảm ơn rất nhiều.

namqn
04-11-2008, 02:27 AM
Mình đang viết một chương trình cần khá nhiều dung lượng bộ nhớ. Trong khi đó con dspic30f6014a chỉ có 8K RAM, trong khi đó lại có 144k Flash program space. Một suy nghĩ bất chợt (có thể hơi tầm bậy tí) là sử dụng Flash program space để lưu dữ liệu.
Như vậy có ổn ko ta. Hi vọng mọi người có thể bỏ chút thời gian giảng giải dùm mình chổ này.
Cảm ơn rất nhiều.
Các hằng số không bị thay đổi cho đến khi cập nhật firmware có thể lưu trong flash (bảng font hiển thị, hay bảng hằng số tạo tín hiệu tham chiếu chẳng hạn), các tham số cần lưu lại sau khi ngắt nguồn của bộ điều khiển có thể được lưu trong EEPROM (các thiết lập chế độ, thông tin trạng thái hoạt động sau cùng chẳng hạn). RAM thường dùng để tính toán trung gian.

Thân,

uydanh
04-11-2008, 02:57 PM
Anh Nam ơi, cho em hỏi thêm 1 câu nữa. Em đã đọc các tài liệu liên quan về việc khai báo dữ liệu ở "không gian ngoài" (external space) với từ khóa là extern. Nhưng em vẫn không hiểu trong trường hợp nào dùng nó. Bởi vì em có down các source code mẫu của Microchip và rất nhiều biến được khai báo kiểu này ( ví dụ như extern unsigned int i). Em muốn hiểu nó thấu đáo để có thể phát triển cũng như tối ưu chương trình của mình. Mong anh giúp đỡ. Cảm ơn anh rất nhiều.

namqn
04-11-2008, 05:46 PM
Anh Nam ơi, cho em hỏi thêm 1 câu nữa. Em đã đọc các tài liệu liên quan về việc khai báo dữ liệu ở "không gian ngoài" (external space) với từ khóa là extern. Nhưng em vẫn không hiểu trong trường hợp nào dùng nó. Bởi vì em có down các source code mẫu của Microchip và rất nhiều biến được khai báo kiểu này ( ví dụ như extern unsigned int i). Em muốn hiểu nó thấu đáo để có thể phát triển cũng như tối ưu chương trình của mình. Mong anh giúp đỡ. Cảm ơn anh rất nhiều.
Nếu bạn có nhiều tập tin nguồn có liên quan cần biên dịch, thì các danh biểu (biến, hàm, ...) không được định nghĩa trong một tập tin nguồn sẽ cần được khai báo là được định nghĩa bên ngoài tập tin nguồn này, bằng từ khóa extern, để tránh lỗi biên dịch.

Thân,

uydanh
04-11-2008, 10:25 PM
Cảm ơn anh Nam rất nhiều. Bây giờ thì em đã hiểu.