Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I am using UDATA_ACS to declare the variables I want in access, so in modem.asm I have</p> <pre><code>; Variables for the interrupt handler - Access RAM VarsModemISR UDATA_ACS wave_index res 1 ; Index into the wave table for current sample sample_period res 1 ; Sample period in use, TMR0 ticks sample_count res 1 ; Amount of samples output since last bit boundary fsrtmpl res 1 ; Temporary store for FSR fsrtmph res 1 ; Temporary store for FSR ; Variables for the modem code - GPR0, non-Access VarsModem UDATA flag res 1 ; Counter for transmitting AX25 flags bit res 1 ; Bit counter when transmitting a character ch res 1 ; Current character being transmitted ... </code></pre> <p>My current linker script uses the supplied script, but defines my segments. I note that there's only one program page defined in the script, unlike on the PIC16s. No more PAGESEL?</p> <pre><code>INCLUDE 18f14K50_g.lkr SECTION NAME=CodeModemISR ROM=page SECTION NAME=CodeModem ROM=page SECTION NAME=CodeWaveTable ROM=page SECTION NAME=CodeEepromUtil ROM=page SECTION NAME=VarsModem RAM=gpr0 SECTION NAME=VarsGPSState RAM=gpr0 SECTION NAME=CodeConfigEEPROM ROM=eedata </code></pre> <p>The resulting map contains the mappings I expect:</p> <p>Hard coded locations as expected:</p> <pre><code> HighInterruptVector code 0x000008 program 0x000004 LowInterruptVector code 0x000018 program 0x000002 </code></pre> <p>Movable locations packed in:</p> <pre><code> CodeModemISR code 0x00001a program 0x000028 CodeModem code 0x000042 program 0x0000fe CodeWaveTable code 0x000140 program 0x000040 CodeMain code 0x000180 program 0x000054 </code></pre> <p>EEPROM in the right place</p> <pre><code> CodeConfigEEPROM code 0xf00000 program 0x000044 </code></pre> <p>And variables in ACCESSRAM and GP0</p> <pre><code> VarsModemISR udata 0x000000 data 0x000005 VarsModem udata 0x000060 data 0x000027 VarsGPSState udata 0x000087 data 0x00000e </code></pre> <p>There are more problems to solve, but they may be in other posts. I note that CodeWaveTable is taking 64 bytes so it's not closely packed. Solution - use CODE_PACK and now it's 32 bytes.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload