Embedded strings in code mpasm error


Closed Thread
Results 1 to 10 of 10
  1. #1
    Join Date
    Jul 2010
    Posts
    14

    Default Embedded strings in code mpasm error

    I'm using the code below. I am keep receiving these errors and can't figure out why. It did work before for me but now doesn't. Any help would be greatly appreciated. I'm using the latest version of PBP and MPLab 8.4 with associated MPASM. Seems it doesn't recognize "Wout" .

    ERROR: Unable to execute mpasmwin.Error[113] C:\PBP\PBPPI18L.LIB 593 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 601 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 601 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\LSI\PORTEXPANDER\PORTEXPANDER.ASM 672 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\LSI\PORTEXPANDER\PORTEXPANDER.ASM 674 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 593 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 601 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 601 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\LSI\PORTEXPANDER\PORTEXPANDER.ASM 672 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\LSI\PORTEXPANDER\PORTEXPANDER.ASM 674 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 593 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 601 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\PBPPI18L.LIB 601 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\LSI\PORTEXPANDER\PORTEXPANDER.ASM 672 : Symbol not previously defined (Wout)
    Error[113] C:\PBP\LSI\PORTEXPANDER\PORTEXPANDER.ASM 674 : Symbol not previously defined (Wout)




    Code:
    '------------GetAddress Macro - Location insensitive -------------------------
    ASM
    GetAddress macro Label, Wout       ; Returns the Address of a Label as a Word
        CHK?RP Wout
        movlw low Label
        movwf Wout
        movlw High Label
        movwf Wout + 1
        endm
    ENDASM
    Last edited by BrianS; - 23rd August 2010 at 17:58.

  2. #2
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Not that I have the answer, but if you could inform us what the target PIC is it might helpw those with more knowledge than I to advise.

    My guess is that you need to edit the associated .INC file for the chip you are using by commenting out the config lines. This file is located in the PBP folder.

    EG:
    Code:
    ;****************************************************************
    ;*  18F4580.INC                                                 *
    ;*                                                              *
    ;*  By        : Leonard Zerman, Jeff Schmoyer                   *
    ;*  Notice    : Copyright (c) 2008 microEngineering Labs, Inc.  *
    ;*              All Rights Reserved                             *
    ;*  Date      : 09/15/08                                        *
    ;*  Version   : 2.60                                            *
    ;*  Notes     :                                                 *
    ;****************************************************************
            NOLIST
        ifdef PM_USED
            LIST
            "Error: PM does not support this device.  Use MPASM."
            NOLIST
        else
            LIST
            LIST p = 18F4580, r = dec, w = -311, w = -230, f = inhx32
            INCLUDE "P18F4580.INC"	; MPASM  Header
            ;__CONFIG    _CONFIG1H, _OSC_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
            ;__CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
            ;__CONFIG    _CONFIG3H, _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_ON_3H
            ;__CONFIG    _CONFIG4L,  _STVREN_ON_4L & _LVP_OFF_4L & _BBSIZ_1024_4L & _XINST_OFF_4L
            NOLIST
        endif
            LIST
    EEPROM_START	EQU	0F00000h
    BLOCK_SIZE	EQU	8
    Also... if using microcode studio to edit... make sure you have the correct target chip selected
    Last edited by malc-c; - 23rd August 2010 at 18:00.

  3. #3
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,614


    Did you find this post helpful? Yes | No

    Default

    Hi, Brian

    As Malc gently tells ...

    I am totally unable to understand what you are talking about... as long as your project is " top secret classified " !!!

    Could you provide a piece of program with config part, and enough to understand what you try to do ... ???

    I only suppose the " MCP23S17 " secret code appears somewhere ...

    Could this help ??? http://www.picbasic.co.uk/forum/show...951&pagenumber=

    Ok ... once more Darrel has striken here ... http://www.pbpgroup.com/modules/wfse...p?articleid=10


    Alain
    Last edited by Acetronics2; - 23rd August 2010 at 18:26.
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  4. #4
    Join Date
    Jul 2010
    Posts
    14


    Did you find this post helpful? Yes | No

    Default

    My chip is a 18f4620.

    This is basically the code (Below) I am trying to use. It did work just a few days ago but now is compiling with the error I had listed.
    Really I am only posting the part of the code that is failing to compile. Problem with "Wout".

    Code:
    '****************************************************************
    '*  Name    : STRINGS-16.PBP                                    *
    '*  Author  : Darrel Taylor                                     *
    '*  Date    : 6/12/2005                                         *
    '*  Note:  Strings must be NULL Terminated                      *
    '****************************************************************
    DEFINE LOADER_USED 1       ' If using bootloader
    DEFINE OSC 4
    DEFINE HSER_TXSTA  24h     ' Use this for Higher Baud Rates
    DEFINE HSER_SPBRG  25      ' 9600 Baud at 4mhz
    
    Addr        var word
    Char        var byte
    
    Clear
    
    goto StartLoop ' Required
    
    String1:
    @ da "This is a string",0
    
    AnotherString:
    @ da "Here is another string",0
    
    '------------GetAddress Macro - Location insensitive -------------------------
    ASM
    GetAddress macro Label, Wout       ; Returns the Address of a Label as a Word
        CHK?RP Wout
        movlw low Label
        movwf Wout
        movlw High Label
        movwf Wout + 1
        endm
    ENDASM
    
    
    StartLoop  ' This loop repeats continuously just as a test.
       @ GetAddress _String1, _Addr        ' Get address of String
       gosub StringOut                     ' Send the String
       hserout [13,10]                     ' New Line
    
       @ GetAddress _AnotherString, _Addr  ' Get address of String
       gosub StringOut                     ' Send the String
       hserout [13,10]                     ' New Line
       pause 500
    goto StartLoop                         ' Repeat
    
    
    StringOut:  ' Send the string out via Hserout
        Readcode Addr, Char           ' Get a character
        if Char  = 0 then StringDone  ' Look for Null char, Stop if found
        hserout [Char]                ' Send char
        Addr = Addr + 1               ' Point to next character
        goto StringOut                ' Continue with rest of the string
      StringDone:
    return
    
    
    end
    Last edited by BrianS; - 23rd August 2010 at 18:24.

  5. #5
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Is Wout defined as a VAR?
    In the ASM part
    _Wout
    Dave
    Always wear safety glasses while programming.

  6. #6
    Join Date
    Jul 2010
    Posts
    14


    Did you find this post helpful? Yes | No

    Default

    It is used in C:\PBP\PBPPI18L.LIB but does not seem to be declared as a var in that file.


    Quote Originally Posted by mackrackit View Post
    Is Wout defined as a VAR?
    In the ASM part
    _Wout

  7. #7
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,614


    Did you find this post helpful? Yes | No

    Default

    Hi, Brian

    Darrel's code compiles without any problem, either with MPLAB 8.56 or MCS
    PBP is 2.60 a

    soooo ... error is elsewhere ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  8. #8
    Join Date
    Jul 2010
    Posts
    10


    Did you find this post helpful? Yes | No

    Default

    It compiles fine on my laptop too, and did compile on my work computer also. But not today. Now it is giving those stated errors and I'm trying to track down what is causing it. I am trying to figure out why "wout" is showing up as not defined on my work computer.

    Brian

    Quote Originally Posted by Acetronics View Post
    Hi, Brian

    Darrel's code compiles without any problem, either with MPLAB 8.56 or MCS
    PBP is 2.60 a

    soooo ... error is elsewhere ...

    Alain

  9. #9
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Wout doesn't get defined as a variable. It's an argument passed to the macro at the time the macro is invoked.

    Example: @ GetAddress _String1, _Addr

    The address of String1 gets passed to the macro as the Label argument. The address of your word variable Addr gets passed to the macro as the Wout argument.

    You most likely have wout somewhere VS Wout and have case sensitivity turned ON in MPASM. Start MPASMWIN.EXE and uncheck the case sensitivity option.

    The error from the library file is where the CHK?RP macro can't find Wout either.

    Your code as posted above compiles fine here.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  10. #10
    Join Date
    Jul 2010
    Posts
    10


    Did you find this post helpful? Yes | No

    Default

    Found the problem. Also sorry for the confusion and appreciate all your help. The cause of the problem was bad commenting in the inline assembly. It is not apparent in my posted code as I copied that from my backup code. Seems I was sticking to the PBP way of commenting even in inline assembly.

    Here is why it wouldn't compile.

    Code:
    Bad Code
    
    ASM
    GetAddress macro Label, Wout       'Returns the Address of a Label as a Word
        CHK?RP Wout
        movlw low Label
        movwf Wout
        movlw High Label
        movwf Wout + 1
        endm
    ENDASM
    
    Good Code
    
    ASM
    GetAddress macro Label, Wout       ;Returns the Address of a Label as a Word
        CHK?RP Wout
        movlw low Label
        movwf Wout
        movlw High Label
        movwf Wout + 1
        endm
    ENDASM
    Once again thanks for for help. Didn't catch this to easily as it looked normal to me to use a ' instead of a ;
    Maybe something for others to watch out for too.
    Thanks,
    Bryan

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts