nó báo lỗi thế này khi dịch
MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc. Error - Absolute code section '.org_2' must start at a word-aligned address. Errors : 1 BUILD FAILED: Sat Jul 21 21:08:03 2007 file ASM thì ko báo lỗi gì ,nhưng khi link thì lỗi như vậy ,mấy anh chỉ giùm ,đang thử sài MPASM . |
Trích:
Thân, |
code hơi dài copy của ng khác để thử
Code:
;******************************************************** project gồm 3 file (đã add vô) : led.asm (file trên) ,p18f4550.inc ,18f4550.lkr khi dịch thì output như sau : Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F4550 "led.asm" /l"led.lst" /e"led.err" /o"led.o" /c- Executing: "C:\Program Files\Microchip\MPASM Suite\MPLink.exe" "C:\Documents and Settings\miti\Desktop\pic\18F4550.lkr" "C:\Documents and Settings\miti\Desktop\pic\led.o" /o"test2.cof" /M"test2.map" MPLINK 4.04, Linker Copyright (c) 2006 Microchip Technology Inc. Error - Absolute code section '.org_2' must start at a word-aligned address. Errors : 1 BUILD FAILED: Sun Jul 22 11:43:42 2007 còn quá trình assembly thì ko có lỗi nào. Anh chỉ giùm:D |
Code:
org 0 ;Reset Vector |
Trích:
Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F4550 "led.asm" /l"led.lst" /e"led.err" /o"led.o" /c- Executing: "C:\Program Files\Microchip\MPASM Suite\MPLink.exe" "C:\Documents and Settings\Minh Tien\Desktop\pic\18F4550.lkr" "C:\Documents and Settings\Minh Tien\Desktop\pic\led.o" /o"test2.cof" /M"test2.map" MPLINK 4.04, Linker Copyright (c) 2006 Microchip Technology Inc. Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x00000220 Errors : 1 BUILD FAILED: Mon Jul 23 09:41:31 2007 hay anh nào ra tay post giùm em project bất kỳ của 18f ,miễn là dịch ko lỗi để em còn biết dg mò |
Mình đoán bạn copy code của 16F đổi sang 18F, tổ chức bộ nhớ chương trình hai dòng này khác nhau. Với 16F vector 0x04 là vector ngắt, còn 2 vector ngắt của 18F ở 0x08 và 0x18, do đó code thường bắt đầu ở 0x2a.
Bạn thử đoạn code này xem sao. Code:
|
có lẽ anh nói đúng ,hồi trưa ,em đã thử dời đoạn Main sang vị trí mới ,ở 100h thì nó ko có lỗi gì ,ra luôn file HEX
và cái vụ config nó , hình như trc giờ chưa / ít ai trong PIC VN nói về nó ( chỉ nói về 16f ) ,và tập lệnh nữa ,hinh như coi trọng 16f ,bỏ quên 18f :D ko hiểu sao ,có khi nó đang chạy thì nó dừng ,(em đã tắt WDT ) |
nó báo lỗi những dòng lệnh :
movwf LATB, a những dòng kết thúc bằng chữ "a" nó nói a chưa dc định nghĩa ,nhưng cái này đúng cú pháp mà |
Trích:
Về chuyện cấu hình, PIC18F có khá nhiều từ cấu hình, và các cấu hình cũng thay đổi khá nhiều theo họ chip. Thậm chí các cụm bit cùng một ý nghĩa nhưng có nhiều họ đặt tên khác nhau. Do đó, dùng chip nào thì xem chip đó. Vì lý do các cấu hình cho PIC18 phức tạp mà Microchip đã viết hẳn ra 1 tập tin hướng dẫn cấu hình đi kèm C18 (trong thư mục con 'doc' của thư mục cài đặt C18) và một tập tin khác ở dạng pdf là 'PIC18 Configuration Setting Addendum' (DS51537) có thể download từ trang web của Microchip. Tập lệnh của PIC18 có thể tham khảo như một phần của tài liệu 'PIC18C Family Reference Manual' (DS39500), có thể download từ trang web của Microchip. Thân, |
xóa chữ a đi thì chương trình chạy bt ,chắc nó coi như 16f
cấu hình ,em vô menu chỉnh trực tiếp luôn ,cũng OK Tập lệnh có trong datasheet ,em mới vừa tìm dc Cảm ơn anh Sẵn cho em hỏi luôn ,nếu mã viết cho 16f mà sài cho 18f thì cần lưu ý / sửa những chỗ nào Em có 1 file ASM <của Microchip >mà nó ko có mậy cái vụ org gì hết ,vậy thì khi dịch và nạp thì sao ,nó cũng xài ngắt |
Trích:
nếu trong đoạn chương trình trên có xài ngắt ,mà ISR lại rất dài ,thì ta viết như thế nào ,có phải thế này ko : ORG 0 goto main ORG 0x18 goto ISR ORG 0x2a ISR ....... ...... retfie main ..... ..... đúng ko anh ? chỗ này quan trọng vì ko qua nó thì cũng ko có file HEX chắci ai cũng gặp thế này khi sài 18f |
Trích:
Thân, |
unbanked RAM (0x70-0x7F) là của 16f ,khai báo như sau
unbanked udata_shr W_s res 1 Temp res 1 anh chỉ cho : khi sửa lại cho 18f thì mình sửa thế nào :) |
Trích:
Code:
udata_acs |
Em là dân mới nên không biết cách gởi bài lên diễn đàn, nên hỏi trong đây mong các Anh thông cảm.
E sử dụng MPASM, khi dich chuong trình nó không chuyển bank. ;test chuyen bank list p=16f877A #include <p16f877A.inc> ORG 0X0 GOTO MAIN ORG 0X5 MAIN CLRF STATUS BSF STATUS,RP0 ;BANKSEL TRISB CLRF TRISB END đáng lẽ khi CLRF TRISB thì nó phải CLRF 0x86 ở bank1 nhưng nó lại LCRF 0x6 ở bank0: 0007 0186 CLRF 0x6 15: CLRF TRISB mong các Anh chi dum. phai khai bao lam sao khi dich bằng Microchip MPASM toolsuite để cho nó chuyển đúng bank. Message[302] E:\PIC\TESTBANK.ASM 15 : Register in operand not in bank 0. Ensure that bank bits are correct |
Múi giờ GMT. Hiện tại là 08:49 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam