Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Компиллер выдаёт ошибку Error[443]: PC offset out of range. Valid range is -1024 (-0x400) to 1023 (0x3FF).
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
ReValver
Добавил пару строк кода в обработчике прерываний, IAR компилер стал выдавать такую ошибку Error[443]: PC offset out of range. Valid range is -1024 (-0x400) to 1023 (0x3FF), может кто сталкивался, как решали данную проблему. Заранее спасибо.
aag
Напишите фрагмент кода обработчика прерывания до появления ошибки, и текст, который привел к ошибке
ReValver
Вот кусок кода который был модифицирован, обработка команды на чтение памяти
Код
_read_eeprom;
            inc         R8
            mov.b       @R8,temp_1    
            swpb        temp_1
;---------------------------------------
            inc         R8
            mov.b       @R8,WriteSPI;
            bis.w       temp_1,WriteSPI
;---------------------------------------
            inc         R8
            mov.b       @R8,Bt_Cnt    
            clr.b        &BufferRX
            cmp.b        BufferRX,Bt_Cnt
            jeq          end_service_comand;
;---------------------------------------------------------------------------
            mov.b         #20h,R9
            mov.b         Bt_Cnt,R8
            cmp.b         R9,R8
            jnc           Cont_RD_ROM_    
            mov.b         #20h,Bt_Cnt    
Cont_RD_ROM_
            mov.b       Bt_Cnt,R12        
            mov         WriteSPI,R9
            mov         #0240h,R11      
;-----------------------------------------------------------------------------
;Вот с этим куском у меня вылазит ошибка
            mov.b       @R9,BufferRX
            mov         #0x41,CommandType
            cmp.b       CommandType,BufferRX
            jeq         read_eeprom_ ;
            jmp         cycle_read_eeprom
;----------------------------------------------------------------------------
read_eeprom_
            mov.b       #0x01,Temp
            mov         #0292h,R11      
            mov         R11,R9          
            mov.b       #1h,Bt_Cnt      
            call        #Transmit_USART[/b][/i]
;Вот с этим куском у меня вылазит ошибка
;--------------------------------------------------------------------
cycle_read_eeprom
            call        #Read_FM25L256_1  
            mov         #00h,R6
            mov.b       R6,0(R11)
            inc         R11              
            inc.w       R9                
            mov         R9,WriteSPI
            dec         R12              
            jnz         cycle_read_eeprom   ;Yes
;----------------------------------------------------------------------
            mov         #240h,R9
            call        #Transmit_USART
           reti
LessNik
Ошибка в том, что команды JEQ/JZ, JNE/JNZ, JC, JNC, JN, JGE, JLM, JMP добавляют смещение к PC, а оно 10 бит. Подробнее смотри UserGuide/ Instruction Set/ Jumps.
У вас слишком длиный переход на какую-то метку.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.