![]() |
|
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Jan 2008
Bài gửi: 97
: |
Theo như trong C18 guide's user thì nó cũng dùng software stack để lưu trữ các biến cục bộ cho các hàm và ngắt. vậy thì tôi có thể dùng các lệnh mở rộng này được chứ.
Còn vấn đề này nữa là trong C18 không có các hàm như malloc(), free(),... để cấp phát bộ nhớ, vậy thì làm cách nào để cấp phát hay giải phóng bộ nhớ. Mình cảm ơn về sự nhiệt tình của bạn rất nhiều. thay đổi nội dung bởi: lybao_huy, 27-03-2010 lúc 06:25 PM. |
![]() |
![]() |
![]() |
#2 | |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Trích:
malloc và free là các hàm cấp phát bộ nhớ động sử dụng heap, muốn sử dụng bạn phải khai báo kích thước heap trong mục linker |
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 5 túi
Tham gia ngày: Jan 2008
Bài gửi: 97
: |
À tôi thấy trong configuration bits dùng để config có bit XINST để bật/tắt Extended Instruction Set.
Extended Instruction Set Enable bit: XINST = OFF Instruction set extension and Indexed Addressing mode disabled (Legacy mode) XINST = ON Instruction set extension and Indexed Addressing mode enabled Vậy thì chỉ cần XINST = ON là có dùng nó rùi, đâu cần phải đánh dấu check mục Extended mode trong MPLAB c18 đâu. À mà tôi thấy trong bản MPLAB c18 Lite cũng có mục Extended mode trong Tab MPASM/C17/C18 Suite đó. thay đổi nội dung bởi: lybao_huy, 27-03-2010 lúc 08:37 PM. |
![]() |
![]() |
![]() |
#4 | |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Trích:
![]() Khi xài hết 60 ngày dùng thử của bản student thì nó vẫn có dấu check, nhưng khi build thì nó bảo ko cho xài, ![]() |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 5 túi
Tham gia ngày: Jan 2008
Bài gửi: 97
: |
à cho hỏi reentrant code và legacy code là gì ?
à mà tôi có thấy nó viết: The static keyword places a local variable or a function parameter in global memory instead of on the software stack. và In general, stack-based local variables and function parameters require more code to access than static local variables and function parameters. Functions that use stack-based variables are more flexible in that they can be reentrant and/or recursive(cái này thuộc cấp lưu trữ auto chỉ có trong Extended mode), từ đó suy ra trong Extended mode hiệu suất sẽ giảm xuống do có nhiều code hơn, nhưng sẽ có lợi hơn khi dùng hàm kiểu reentrant/recursive thay đổi nội dung bởi: lybao_huy, 27-03-2010 lúc 09:33 PM. |
![]() |
![]() |
![]() |
#6 |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Ko phải có lợi hơn, mà bắt buộc phải allocate biến cục bộ trong stack mới re-entrant được.
Extended mode tăng hiệu năng cho re-entrant code là vì nó tăng hiệu năng cho software stack là thế! Bạn hỏi liên tục thế thì lấy thời gian đâu mà suy ngẫm, ![]() |
![]() |
![]() |
![]() |
#7 |
Đệ tử 5 túi
Tham gia ngày: Jan 2008
Bài gửi: 97
: |
Xin lỗi vì đã làm phiền, nhưng mục đích của mình là làm trên con Dspic nên trước tiên phải học trên PIC18 trước đã vì đã từng nghiên cứu PIC 18 trên CCS lâu rồi, có cơ sở rồi sẽ chuyển qua dspic với MPLAB C30. Cảm ơn bạn rất nhiều.
À bạn làm ơn giải thích dùm Reentrant code là gì vậy(trong từ điển có nghĩa là: lõm vào) |
![]() |
![]() |
![]() |
|
|