This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM57X: PRU statics not initialized to zero

Part Number: PROCESSOR-SDK-AM57X


Hello,

We have a little program that runs in a PRU ICSS, it was working fine with SDK6 but when we moved to SDK8 it started to misbehave, even with the same binary. Funnier was that when booting with SDK6 through NFS, the firmware worked well, then rebooting (software) into SDK8, still working fine. But if the board was powered on and directly booted in SDK8, then everything stopped working. As I said, with the same binary in the PRU1_0.

We managed to debug and fix it, the problem was that there was a bunch of `static` variables that were not being init to 0. It took a few days to figure it out that, but after explicitly initing them to 0, the problem was fixed. However, according to ANSI C all statics should be init to 0 if not specified anything different, and that is also mentioned in "PRU Optimizing C/C++ Compiler" https://www.ti.com/lit/ug/spruhv7c/spruhv7c.pdf on page 119:

6.7.2.1 Zero Initializing Variables
In ANSI C, global and static variables that are not explicitly initialized must be set to 0 before program execution. The C/C++ compiler supports preinitialization of uninitialized variables by default. This can be turned off by specifying the linker option --zero_init=off.

I've checked that our Makefile doesn't have that zero_init flag, even tried passing --zero_init=on to the linker. But there is no change in the disassmebly. What could be going on here? My theory is that SDK6 (kernel v4.19) driver inits all PRU memory to zeroes, which makes it work, and while power is maintained booting into SDK8 keeps the zeroes there. And if SDK8 (kernel v5.10) doesn't init to zero, then it grabs wathever was in that memory section.

These are the disassembly excerpts regarding the "zero" variable that was supposed to be 0:

Original code (SDK6):

void main (void)
{
    static uint32_t zero;
    [...]
    __xout (PRUSS_SCRATCH_PAD_BANK_1, R29, 0, zero);
}

This translated to this disassmebly (using ~/ti_processor_sdk_rtos_am57xx_08_01_00_09/ti-cgt-pru_2.3.3/bin/dispru ).

Here we can see that R0 is loaded with 6916 (0x1b04) and then R29 (and others) are loaded with that value, which, if I understand it correctly, is not even in the DATA section.

TEXT Section .text (Little Endian), 0x1b1c bytes at 0x0000001c 
0x0000001c                   main:
0000001c     053ee2e2      SUB R2, R2, 62
00000020     e51482c3      SBBO &R3.b2, R2, 20, 42
00000024     241b04e0      LDI R0, 6916             # 6916 = 0x1b04
00000028     f100209b      LBBO &R27.b0, R0, 0, 4
0000002c     2f05819b      XOUT 11, &R27.b0, 4
00000030     10000000      AND R0.b0, R0.b0, R0.b0
00000034     f100209c      LBBO &R28.b0, R0, 0, 4
00000038     2f05819c      XOUT 11, &R28.b0, 4
0000003c     10000000      AND R0.b0, R0.b0, R0.b0
00000040     f100209d      LBBO &R29.b0, R0, 0, 4
00000044     2f05819d      XOUT 11, &R29.b0, 4
[...]
# Notice that it's the same section, and that it's actually code!!
00001b04     6f00e0fc      QBNE $C$L1, R0, 0
[...]

If I change the initialization in C code to zero = 0, the disassembly changes. Here are the excerpts:

TEXT Section .text (Little Endian), 0x1b1c bytes at 0x0000001c 
0x0000001c                   main:
0000001c     053ee2e2      SUB R2, R2, 62
00000020     e51482c3      SBBO &R3.b2, R2, 20, 42
00000024     241df0e0      LDI R0, 7664             # 7664 = 0x1df0
00000028     f100209b      LBBO &R27.b0, R0, 0, 4
0000002c     2f05819b      XOUT 11, &R27.b0, 4
00000030     10000000      AND R0.b0, R0.b0, R0.b0
00000034     f100209c      LBBO &R28.b0, R0, 0, 4
00000038     2f05819c      XOUT 11, &R28.b0, 4
0000003c     10000000      AND R0.b0, R0.b0, R0.b0
00000040     f100209d      LBBO &R29.b0, R0, 0, 4
00000044     2f05819d      XOUT 11, &R29.b0, 4
[...]

DATA Section .data (Little Endian), 0x90 bytes at 0x00001d64 
[...]
0x00001df0                   zero$15:
00001df0      00000000              .word 0x00000000

Here, R0 is loaded with 7664 (0x1DF0) which is referred as zero and in fact, has value 0 in the DATA section.

For now, we will stick to explicit initialization, but I am curious: Is this a linker/compiler bug? Is this a linux driver issue? Did we miss something in the configuration? Thank you very much!

  • Hello Sebastian,

    I am glad to hear that you have been able to identify a fix for this. I will consult internally on this and will get back to you. Please expect some delay due to bandwidth. 

    I will update you on this by next week.

    Best, 

    Josue

  • Thanks for your response! As I said, the problem fixed with this, and luckily it's a small piece of code so there are few variables that actually needed this, and is relatively easy to exercise to check that no other unexpected behavior has occurred (at least so far!), so the urgency and priority are very low on our side.

    The question is more a matter of curiosity and informing TI of this, in case it is actually a bug on the compiler/linker/driver.

  • Hello Sebastian,

    Thank you for reporting it. I am still consulting internally but from the driver perspective, both prueth.c from SDK 6.3 and prueth_core.c from SDK 8.2 have the same function that initializes all PRU memories to zero. There are many changes in this driver besides the name.  Could be helpful to look through some of these, in particular the around way prueth_hostinit() is used inside prueth_probe().

    Best,

    Josue

  • Compiler team question:
    -" Are they linking with --rom_model or --ram_model?"

    -Josue

  • With --rom_model.

    This is the Makefile's linker line:

    "$(ti.targets.elf.PRU)/bin/clpru" $(CFLAGS) --asm_listing --run_linker --map_file="PRU_CONTROLLER.map" --heap_size=$(HEAP_SIZE) --stack_size=$(STACK_SIZE) --search_path="$(ti.targets.elf.PRU)/lib" --reread_libs --warn_sections --xml_link_info="PRU_CONTROLLER_linkInfo.xml" --rom_model --output_file="PRU_CONTROLLER.out" $(ORDERED_OBJS)
  • Thank you for the linker options.  Please add the linker option --mapfile_contents=sym_defs, and build again.  Attach PRU_CONTROLLER.map to your next post.  So the forum will accept it, add the file extension .txt to it.  Please indicate the name and source file of one or more static variables which are not automatically initialized to zero.

    Thanks and regards,

    -George

  • Here you are, both with the fix and the original .map files.

    The static non-zero vars are:
    total_samples_index, init_timeout_cycles, init_timeout_secs, zero, raw_smp_idx, res_smp_idx, old_res_smp_idx
    And in the original are placed in the .bss section:

    00001ad8  local     total_samples_index$6 (.bss)
    00001afc  local     init_timeout_cycles$13 (.bss)
    00001b00  local     init_timeout_secs$14 (.bss)
    00001b04  local     zero$15 (.bss)
    00001b14  local     raw_smp_idx$19 (.bss)
    00001b18  local     res_smp_idx$20 (.bss)
    00001b1c  local     old_res_smp_idx$21 (.bss)

    But after applying the fix (explicitly init to 0) they are placed in .data section:

    00001dd8  local     total_samples_index$6 (.data)
    00001ddc  local     init_timeout_cycles$13 (.data)
    00001de0  local     init_timeout_secs$14 (.data)
    00001de4  local     zero$15 (.data)
    00001de8  local     raw_smp_idx$16 (.data)
    00001dec  local     res_smp_idx$17 (.data)
    00001df0  local     old_res_smp_idx$18 (.data)
    

    ******************************************************************************
                         PRU Linker Unix v2.3.3                    
    ******************************************************************************
    >> Linked Tue Mar 26 16:14:04 2024
    
    OUTPUT FILE NAME:   <PRU_ADC_BRIDGE_CONTROLLER.out>
    ENTRY POINT SYMBOL: "_c_int00_noinit_noargs"  address: 00000000
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
    PAGE 0:
      PRU_IMEM              00000000   00003000  00001b38  000014c8  RWIX
    
    PAGE 1:
      PRU_DMEM_0_1          00000000   00002000  00001e22  000001de  RWIX
      PRU_DMEM_1_0          00002000   00002000  00000000  00002000  RWIX
    
    PAGE 2:
      PRU_SHAREDMEM         00010000   00008000  00000000  00008000  RWIX
      PRU_INTC              00020000   00001504  00001504  00000000  RWIX
      PRU_CFG               00026000   00000120  0000011c  00000004  RWIX
      PRU_UART              00028000   00000038  00000000  00000038  RWIX
      PRU_IEP               0002e000   0000031c  00000000  0000031c  RWIX
      PRU_ECAP              00030000   00000060  00000000  00000060  RWIX
      RSVD27                00032000   00000100  00000000  00000100  RWIX
      RSVD21                00032400   00000100  00000000  00000100  RWIX
      L3OCMC                40000000   00010000  00000000  00010000  RWIX
      MCASP3_DMA            46000000   00000100  00000000  00000100  RWIX
      RSVD11                48022000   00000088  00000000  00000088  RWIX
      RSVD12                48024000   00000088  00000000  00000088  RWIX
      RSVD2                 4802a000   000000d8  00000000  000000d8  RWIX
      RSVD6                 48030000   000001a4  00000000  000001a4  RWIX
      RSVD1                 48040000   0000005c  00000000  0000005c  RWIX
      I2C3                  48060000   00000300  00000000  00000300  RWIX
      RSVD22                480c8000   00000140  00000000  00000140  RWIX
      RSVD23                480ca000   00000880  00000000  00000880  RWIX
      RSVD17                4819c000   000000d8  00000000  000000d8  RWIX
      RSVD16                481a0000   000001a4  00000000  000001a4  RWIX
      RSVD14                481cc000   000001e8  00000000  000001e8  RWIX
      RSVD15                481d0000   000001e8  00000000  000001e8  RWIX
      RSVD18                48300000   000002c4  00000000  000002c4  RWIX
      RSVD19                48302000   000002c4  00000000  000002c4  RWIX
      RSVD20                48304000   000002c4  00000000  000002c4  RWIX
      RSVD13                48310000   00000100  00000000  00000100  RWIX
      RSVD10                48318000   00000100  00000000  00000100  RWIX
      RSVD29                49000000   00001098  00000000  00001098  RWIX
      RSVD9                 4a100000   0000128c  00000000  0000128c  RWIX
      DDR                   80000000   00000100  00000000  00000100  RWIX
      PRUADC_DDR_CARVEOUT   9f800000   00800000  00000000  00800000  RWIX
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .text:_c_int00* 
    *          0    00000000    0000001c     
                      00000000    0000001c     rtspruv3_le.lib : boot.c.obj (.text:_c_int00_noinit_noargs)
    
    .text      0    0000001c    00001b1c     
                      0000001c    000005b4     PRU_ADS131E08_Controller.obj (.text:main)
                      000005d0    000002b8     PRU_ADS131E08_Controller.obj (.text:Resampling)
                      00000888    00000228     PRU_ADS131E08_Controller.obj (.text:UpdateSettings)
                      00000ab0    00000184     PRU_ADS131E08_Controller.obj (.text:configChn_cmd)
                      00000c34    0000012c     rtspruv3_le.lib : mpyll.c.obj (.text:__pruabi_mpyll)
                      00000d60    00000118     PRU_ADS131E08_Controller.obj (.text:Check_New_Samples)
                      00000e78    00000118     rtspruv3_le.lib : divu_c.c.obj (.text:__pruabi_divu)
                      00000f90    00000104     PRU_ADS131E08_Controller.obj (.text:SetCTgtype)
                      00001094    000000ec     PRU_ADS131E08_Controller.obj (.text:adc_init)
                      00001180    000000ac     PRU_ADS131E08_Controller.obj (.text:Resampling_LinIntp)
                      0000122c    000000ac     PRU_ADS131E08_Controller.obj (.text:config3_cmd)
                      000012d8    000000ac     PRU_ADS131E08_Controller.obj (.text:read_register)
                      00001384    000000a8     PRU_ADS131E08_Controller.obj (.text:send_command)
                      0000142c    000000a4     PRU_ADS131E08_Controller.obj (.text:config1_cmd)
                      000014d0    00000094     PRU_ADS131E08_Controller.obj (.text:iSwap_Bytes)
                      00001564    00000090     FIRFilter32bits.obj (.text)
                      000015f4    00000088     rtspruv3_le.lib : asrll.c.obj (.text:__pruabi_asrll)
                      0000167c    00000080     PRU_ADS131E08_Controller.obj (.text:receive_data)
                      000016fc    00000070     PRU_ADS131E08_Controller.obj (.text:configIntc)
                      0000176c    00000068     PRU_ADS131E08_Controller.obj (.text:adc_miso_config)
                      000017d4    0000005c     PRU_ADS131E08_Controller.obj (.text:AntialiasingFilter)
                      00001830    00000058     PRU_ADS131E08_Controller.obj (.text:clearCfg)
                      00001888    00000054     PRU_ADS131E08_Controller.obj (.text:uSwap_Bytes)
                      000018dc    00000050     rtspruv3_le.lib : lsrll.c.obj (.text:__pruabi_lsrll)
                      0000192c    00000050     PRU_ADS131E08_Controller.obj (.text:send_ContinuosFlag)
                      0000197c    00000048     PRU_ADS131E08_Controller.obj (.text:rdatac_cmd)
                      000019c4    00000040     PRU_ADS131E08_Controller.obj (.text:reset_cmd)
                      00001a04    00000040     PRU_ADS131E08_Controller.obj (.text:sdatac_cmd)
                      00001a44    00000040     PRU_ADS131E08_Controller.obj (.text:start_cmd)
                      00001a84    00000034     rtspruv3_le.lib : memcpy.asm.obj (.text)
                      00001ab8    00000030                     : asri.c.obj (.text:__pruabi_asri)
                      00001ae8    00000024                     : mpyi.c.obj (.text:__pruabi_mpyi)
                      00001b0c    0000001c                     : memset.c.obj (.text:memset)
                      00001b28    00000008                     : exit.c.obj (.text:abort)
                      00001b30    00000008                     : exit.c.obj (.text:loader_exit)
    
    .bss       1    00000000    00001b66     UNINITIALIZED
                      00000000    00000e00     PRU_ADS131E08_Controller.obj (.bss:Blk_Resamples)
                      00000e00    00000800     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_Channels)
                      00001600    00000200     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_IEPTimestamp)
                      00001800    00000100     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_Status)
                      00001900    00000100     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_Timestamp)
                      00001a00    000000c8     PRU_ADS131E08_Controller.obj (.bss:new_samples_buffer)
                      00001ac8    00000061     PRU_ADS131E08_Controller.obj (.bss)
                      00001b29    00000028     PRU_ADS131E08_Controller.obj (.bss:adc_data_buff)
                      00001b51    00000015     PRU_ADS131E08_Controller.obj (.bss:config_buf)
    
    .stack     1    00001b68    00000200     UNINITIALIZED
                      00001b68    00000004     rtspruv3_le.lib : boot.c.obj (.stack)
                      00001b6c    000001fc     --HOLE--
    
    .data      1    00001d68    0000008c     
                      00001d68    00000080     PRU_ADS131E08_Controller.obj (.data:FilterCoeff$11)
                      00001de8    0000000c     PRU_ADS131E08_Controller.obj (.data)
    
    .cinit     1    00000000    00000000     UNINITIALIZED
    
    .rodata    1    00001df4    0000001c     
                      00001df4    00000018     PRU_ADS131E08_Controller.obj (.rodata:.string)
                      00001e0c    00000004     PRU_ADS131E08_Controller.obj (.rodata:$P$T149$1)
    
    .resource_table 
    *          1    00001e10    00000014     
                      00001e10    00000014     PRU_ADS131E08_Controller.obj (.resource_table:retain)
    
    .creg.PRU_INTC.noload.near 
    *          2    00020000    00000000     NOLOAD SECTION
    
    .creg.PRU_INTC.near 
    *          2    00020000    00000000     UNINITIALIZED
    
    .creg.PRU_INTC.noload.far 
    *          2    00020000    00001504     NOLOAD SECTION
                      00020000    00001504     PRU_ADS131E08_Controller.obj (.creg.PRU_INTC.noload.far)
    
    .creg.PRU_INTC.far 
    *          2    00021504    00000000     UNINITIALIZED
    
    .creg.PRU_CFG.noload.near 
    *          2    00026000    0000011c     NOLOAD SECTION
                      00026000    0000011c     PRU_ADS131E08_Controller.obj (.creg.PRU_CFG.noload.near)
    
    .creg.PRU_CFG.near 
    *          2    0002611c    00000000     UNINITIALIZED
    
    .creg.PRU_CFG.noload.far 
    *          2    0002611c    00000000     NOLOAD SECTION
    
    .creg.PRU_CFG.far 
    *          2    0002611c    00000000     UNINITIALIZED
    
    MODULE SUMMARY
    
           Module                         code   ro data   rw data
           ------                         ----   -------   -------
        <current directory>
           PRU_ADS131E08_Controller.obj   5820   28        12838  
           FIRFilter32bits.obj            144    0         0      
        +--+------------------------------+------+---------+---------+
           Total:                         5964   28        12838  
                                                                  
        /home/bridge/ti_processor_sdk_rtos_am57xx_08_01_00_09/ti-cgt-pru_2.3.3/lib/rtspruv3_le.lib
           mpyll.c.obj                    300    0         0      
           divu_c.c.obj                   280    0         0      
           asrll.c.obj                    136    0         0      
           lsrll.c.obj                    80     0         0      
           memcpy.asm.obj                 52     0         0      
           asri.c.obj                     48     0         0      
           mpyi.c.obj                     36     0         0      
           boot.c.obj                     28     0         0      
           memset.c.obj                   28     0         0      
           exit.c.obj                     16     0         0      
        +--+------------------------------+------+---------+---------+
           Total:                         1004   0         0      
                                                                  
           Stack:                         0      0         512    
        +--+------------------------------+------+---------+---------+
           Grand Total:                   6968   28        13350  
    
    
    SEGMENT ATTRIBUTES
    
        id tag      seg value
        -- ---      --- -----
         0 PHA_PAGE 1   1    
         1 PHA_PAGE 2   1    
         2 PHA_PAGE 3   1    
         3 PHA_PAGE 4   1    
         4 PHA_PAGE 5   1    
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    page  address   name                         
    ----  -------   ----                         
    0     00001b30  C$$EXIT                      
    2     00026000  CT_CFG                       
    2     00020000  CT_INTC                      
    0     00001564  FIRsigned32                  
    abs   80000000  __PRU_CREG_BASE_DDR          
    abs   48060000  __PRU_CREG_BASE_I2C3         
    abs   40000000  __PRU_CREG_BASE_L3OCMC       
    abs   46000000  __PRU_CREG_BASE_MCASP3_DMA   
    abs   00026000  __PRU_CREG_BASE_PRU_CFG      
    abs   00000000  __PRU_CREG_BASE_PRU_DMEM_0_1 
    abs   00002000  __PRU_CREG_BASE_PRU_DMEM_1_0 
    abs   00030000  __PRU_CREG_BASE_PRU_ECAP     
    abs   0002e000  __PRU_CREG_BASE_PRU_IEP      
    abs   00020000  __PRU_CREG_BASE_PRU_INTC     
    abs   00010000  __PRU_CREG_BASE_PRU_SHAREDMEM
    abs   00028000  __PRU_CREG_BASE_PRU_UART     
    abs   48040000  __PRU_CREG_BASE_RSVD1        
    abs   48318000  __PRU_CREG_BASE_RSVD10       
    abs   48022000  __PRU_CREG_BASE_RSVD11       
    abs   48024000  __PRU_CREG_BASE_RSVD12       
    abs   48310000  __PRU_CREG_BASE_RSVD13       
    abs   481cc000  __PRU_CREG_BASE_RSVD14       
    abs   481d0000  __PRU_CREG_BASE_RSVD15       
    abs   481a0000  __PRU_CREG_BASE_RSVD16       
    abs   4819c000  __PRU_CREG_BASE_RSVD17       
    abs   48300000  __PRU_CREG_BASE_RSVD18       
    abs   48302000  __PRU_CREG_BASE_RSVD19       
    abs   4802a000  __PRU_CREG_BASE_RSVD2        
    abs   48304000  __PRU_CREG_BASE_RSVD20       
    abs   00032400  __PRU_CREG_BASE_RSVD21       
    abs   480c8000  __PRU_CREG_BASE_RSVD22       
    abs   480ca000  __PRU_CREG_BASE_RSVD23       
    abs   00032000  __PRU_CREG_BASE_RSVD27       
    abs   49000000  __PRU_CREG_BASE_RSVD29       
    abs   48030000  __PRU_CREG_BASE_RSVD6        
    abs   4a100000  __PRU_CREG_BASE_RSVD9        
    abs   0000001f  __PRU_CREG_DDR               
    abs   00000005  __PRU_CREG_I2C3              
    abs   0000001e  __PRU_CREG_L3OCMC            
    abs   00000008  __PRU_CREG_MCASP3_DMA        
    abs   00000004  __PRU_CREG_PRU_CFG           
    abs   00000018  __PRU_CREG_PRU_DMEM_0_1      
    abs   00000019  __PRU_CREG_PRU_DMEM_1_0      
    abs   00000003  __PRU_CREG_PRU_ECAP          
    abs   0000001a  __PRU_CREG_PRU_IEP           
    abs   00000000  __PRU_CREG_PRU_INTC          
    abs   0000001c  __PRU_CREG_PRU_SHAREDMEM     
    abs   00000007  __PRU_CREG_PRU_UART          
    abs   00000001  __PRU_CREG_RSVD1             
    abs   0000000a  __PRU_CREG_RSVD10            
    abs   0000000b  __PRU_CREG_RSVD11            
    abs   0000000c  __PRU_CREG_RSVD12            
    abs   0000000d  __PRU_CREG_RSVD13            
    abs   0000000e  __PRU_CREG_RSVD14            
    abs   0000000f  __PRU_CREG_RSVD15            
    abs   00000010  __PRU_CREG_RSVD16            
    abs   00000011  __PRU_CREG_RSVD17            
    abs   00000012  __PRU_CREG_RSVD18            
    abs   00000013  __PRU_CREG_RSVD19            
    abs   00000002  __PRU_CREG_RSVD2             
    abs   00000014  __PRU_CREG_RSVD20            
    abs   00000015  __PRU_CREG_RSVD21            
    abs   00000016  __PRU_CREG_RSVD22            
    abs   00000017  __PRU_CREG_RSVD23            
    abs   0000001b  __PRU_CREG_RSVD27            
    abs   0000001d  __PRU_CREG_RSVD29            
    abs   00000006  __PRU_CREG_RSVD6             
    abs   00000009  __PRU_CREG_RSVD9             
    1     00001d68  __TI_STACK_END               
    abs   00000200  __TI_STACK_SIZE              
    abs   ffffffff  __c_args__                   
    0     00001ab8  __pruabi_asri                
    0     000015f4  __pruabi_asrll               
    0     00000e78  __pruabi_divu                
    0     000018dc  __pruabi_lsrll               
    0     00001ae8  __pruabi_mpyi                
    0     00000c34  __pruabi_mpyll               
    0     00000000  _c_int00_noinit_noargs       
    1     00001b68  _stack                       
    0     00001b28  abort                        
    0     0000001c  main                         
    0     00001a84  memcpy                       
    0     00001b0c  memset                       
    1     00001e10  pru_remoteproc_ResourceTable 
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    page  address   name                         
    ----  -------   ----                         
    0     00000000  _c_int00_noinit_noargs       
    0     0000001c  main                         
    0     00000c34  __pruabi_mpyll               
    0     00000e78  __pruabi_divu                
    0     00001564  FIRsigned32                  
    0     000015f4  __pruabi_asrll               
    0     000018dc  __pruabi_lsrll               
    0     00001a84  memcpy                       
    0     00001ab8  __pruabi_asri                
    0     00001ae8  __pruabi_mpyi                
    0     00001b0c  memset                       
    0     00001b28  abort                        
    0     00001b30  C$$EXIT                      
    1     00001b68  _stack                       
    1     00001d68  __TI_STACK_END               
    1     00001e10  pru_remoteproc_ResourceTable 
    2     00020000  CT_INTC                      
    2     00026000  CT_CFG                       
    abs   00000000  __PRU_CREG_BASE_PRU_DMEM_0_1 
    abs   00000000  __PRU_CREG_PRU_INTC          
    abs   00000001  __PRU_CREG_RSVD1             
    abs   00000002  __PRU_CREG_RSVD2             
    abs   00000003  __PRU_CREG_PRU_ECAP          
    abs   00000004  __PRU_CREG_PRU_CFG           
    abs   00000005  __PRU_CREG_I2C3              
    abs   00000006  __PRU_CREG_RSVD6             
    abs   00000007  __PRU_CREG_PRU_UART          
    abs   00000008  __PRU_CREG_MCASP3_DMA        
    abs   00000009  __PRU_CREG_RSVD9             
    abs   0000000a  __PRU_CREG_RSVD10            
    abs   0000000b  __PRU_CREG_RSVD11            
    abs   0000000c  __PRU_CREG_RSVD12            
    abs   0000000d  __PRU_CREG_RSVD13            
    abs   0000000e  __PRU_CREG_RSVD14            
    abs   0000000f  __PRU_CREG_RSVD15            
    abs   00000010  __PRU_CREG_RSVD16            
    abs   00000011  __PRU_CREG_RSVD17            
    abs   00000012  __PRU_CREG_RSVD18            
    abs   00000013  __PRU_CREG_RSVD19            
    abs   00000014  __PRU_CREG_RSVD20            
    abs   00000015  __PRU_CREG_RSVD21            
    abs   00000016  __PRU_CREG_RSVD22            
    abs   00000017  __PRU_CREG_RSVD23            
    abs   00000018  __PRU_CREG_PRU_DMEM_0_1      
    abs   00000019  __PRU_CREG_PRU_DMEM_1_0      
    abs   0000001a  __PRU_CREG_PRU_IEP           
    abs   0000001b  __PRU_CREG_RSVD27            
    abs   0000001c  __PRU_CREG_PRU_SHAREDMEM     
    abs   0000001d  __PRU_CREG_RSVD29            
    abs   0000001e  __PRU_CREG_L3OCMC            
    abs   0000001f  __PRU_CREG_DDR               
    abs   00000200  __TI_STACK_SIZE              
    abs   00002000  __PRU_CREG_BASE_PRU_DMEM_1_0 
    abs   00010000  __PRU_CREG_BASE_PRU_SHAREDMEM
    abs   00020000  __PRU_CREG_BASE_PRU_INTC     
    abs   00026000  __PRU_CREG_BASE_PRU_CFG      
    abs   00028000  __PRU_CREG_BASE_PRU_UART     
    abs   0002e000  __PRU_CREG_BASE_PRU_IEP      
    abs   00030000  __PRU_CREG_BASE_PRU_ECAP     
    abs   00032000  __PRU_CREG_BASE_RSVD27       
    abs   00032400  __PRU_CREG_BASE_RSVD21       
    abs   40000000  __PRU_CREG_BASE_L3OCMC       
    abs   46000000  __PRU_CREG_BASE_MCASP3_DMA   
    abs   48022000  __PRU_CREG_BASE_RSVD11       
    abs   48024000  __PRU_CREG_BASE_RSVD12       
    abs   4802a000  __PRU_CREG_BASE_RSVD2        
    abs   48030000  __PRU_CREG_BASE_RSVD6        
    abs   48040000  __PRU_CREG_BASE_RSVD1        
    abs   48060000  __PRU_CREG_BASE_I2C3         
    abs   480c8000  __PRU_CREG_BASE_RSVD22       
    abs   480ca000  __PRU_CREG_BASE_RSVD23       
    abs   4819c000  __PRU_CREG_BASE_RSVD17       
    abs   481a0000  __PRU_CREG_BASE_RSVD16       
    abs   481cc000  __PRU_CREG_BASE_RSVD14       
    abs   481d0000  __PRU_CREG_BASE_RSVD15       
    abs   48300000  __PRU_CREG_BASE_RSVD18       
    abs   48302000  __PRU_CREG_BASE_RSVD19       
    abs   48304000  __PRU_CREG_BASE_RSVD20       
    abs   48310000  __PRU_CREG_BASE_RSVD13       
    abs   48318000  __PRU_CREG_BASE_RSVD10       
    abs   49000000  __PRU_CREG_BASE_RSVD29       
    abs   4a100000  __PRU_CREG_BASE_RSVD9        
    abs   80000000  __PRU_CREG_BASE_DDR          
    abs   ffffffff  __c_args__                   
    
    [84 symbols]
    
    
    SYMBOL DEFINITIONS BY INPUT FILE 
    
    ================================================================================
    
    FIRFilter32bits.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001564  local     .text (.text)
    000015d8  local     Exit2 (.text)
    00001564  global    FIRsigned32 (.text)
    0000158c  local     Firmulsign (.text)
    000015ac  local     positive_coeff (.text)
    000015a4  local     positive_sample (.text)
    
    
    ================================================================================
    
    PRU_ADS131E08_Controller.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001860  local     $C$L1 (.text:clearCfg)
    000016c0  local     $C$L10 (.text:receive_data)
    00001960  local     $C$L11 (.text:send_ContinuosFlag)
    00001968  local     $C$L12 (.text:send_ContinuosFlag)
    000017b4  local     $C$L13 (.text:adc_miso_config)
    000017bc  local     $C$L14 (.text:adc_miso_config)
    000014c0  local     $C$L15 (.text:config1_cmd)
    000012c8  local     $C$L16 (.text:config3_cmd)
    00000ae8  local     $C$L17 (.text:configChn_cmd)
    00000af0  local     $C$L18 (.text:configChn_cmd)
    00000bf8  local     $C$L19 (.text:configChn_cmd)
    00001880  local     $C$L2 (.text:clearCfg)
    00000c14  local     $C$L20 (.text:configChn_cmd)
    00000c24  local     $C$L21 (.text:configChn_cmd)
    00000c28  local     $C$L22 (.text:configChn_cmd)
    00000fe4  local     $C$L23 (.text:SetCTgtype)
    00000ff0  local     $C$L24 (.text:SetCTgtype)
    00001054  local     $C$L25 (.text:SetCTgtype)
    00001060  local     $C$L26 (.text:SetCTgtype)
    00001084  local     $C$L27 (.text:SetCTgtype)
    00001308  local     $C$L28 (.text:read_register)
    00001328  local     $C$L29 (.text:read_register)
    000013a8  local     $C$L3 (.text:send_command)
    000010f0  local     $C$L30 (.text:adc_init)
    00001104  local     $C$L31 (.text:adc_init)
    00001118  local     $C$L32 (.text:adc_init)
    00001130  local     $C$L33 (.text:adc_init)
    00001148  local     $C$L34 (.text:adc_init)
    00001504  local     $C$L35 (.text:iSwap_Bytes)
    00001544  local     $C$L36 (.text:iSwap_Bytes)
    00001558  local     $C$L37 (.text:iSwap_Bytes)
    000018bc  local     $C$L38 (.text:uSwap_Bytes)
    00000db0  local     $C$L39 (.text:Check_New_Samples)
    000013b0  local     $C$L4 (.text:send_command)
    00000ddc  local     $C$L40 (.text:Check_New_Samples)
    00000e0c  local     $C$L41 (.text:Check_New_Samples)
    00000e14  local     $C$L42 (.text:Check_New_Samples)
    00000e3c  local     $C$L43 (.text:Check_New_Samples)
    00000e40  local     $C$L44 (.text:Check_New_Samples)
    00000e68  local     $C$L45 (.text:Check_New_Samples)
    000011d8  local     $C$L46 (.text:Resampling_LinIntp)
    00001214  local     $C$L47 (.text:Resampling_LinIntp)
    00001220  local     $C$L48 (.text:Resampling_LinIntp)
    00000688  local     $C$L49 (.text:Resampling)
    000013e8  local     $C$L5 (.text:send_command)
    00000710  local     $C$L50 (.text:Resampling)
    00000738  local     $C$L51 (.text:Resampling)
    0000075c  local     $C$L52 (.text:Resampling)
    00000784  local     $C$L53 (.text:Resampling)
    00000804  local     $C$L54 (.text:Resampling)
    0000082c  local     $C$L55 (.text:Resampling)
    000008cc  local     $C$L56 (.text:UpdateSettings)
    000008d8  local     $C$L57 (.text:UpdateSettings)
    0000090c  local     $C$L58 (.text:UpdateSettings)
    00000964  local     $C$L59 (.text:UpdateSettings)
    000013f0  local     $C$L6 (.text:send_command)
    00000974  local     $C$L60 (.text:UpdateSettings)
    000009cc  local     $C$L61 (.text:UpdateSettings)
    000009dc  local     $C$L62 (.text:UpdateSettings)
    000009e0  local     $C$L63 (.text:UpdateSettings)
    00000a04  local     $C$L64 (.text:UpdateSettings)
    00000a48  local     $C$L65 (.text:UpdateSettings)
    00000a58  local     $C$L66 (.text:UpdateSettings)
    00000a70  local     $C$L67 (.text:UpdateSettings)
    00000a80  local     $C$L68 (.text:UpdateSettings)
    00000aa0  local     $C$L69 (.text:UpdateSettings)
    00001404  local     $C$L7 (.text:send_command)
    00000140  local     $C$L70 (.text:main)
    00000178  local     $C$L71 (.text:main)
    00000190  local     $C$L72 (.text:main)
    00000190  local     $C$L73 (.text:main)
    000001c0  local     $C$L74 (.text:main)
    000001e4  local     $C$L75 (.text:main)
    00000394  local     $C$L76 (.text:main)
    00000474  local     $C$L77 (.text:main)
    000004dc  local     $C$L78 (.text:main)
    000004ec  local     $C$L79 (.text:main)
    0000140c  local     $C$L8 (.text:send_command)
    00000590  local     $C$L80 (.text:main)
    000005b8  local     $C$L81 (.text:main)
    000016b8  local     $C$L9 (.text:receive_data)
    00001df4  local     $C$SL1 (.rodata:.string)
    00001e00  local     $C$SL2 (.rodata:.string)
    00001e0c  local     $P$T149$1 (.rodata:$P$T149$1)
    00001ac8  local     .bss (.bss)
    00000000  local     .bss:Blk_Resamples (.bss:Blk_Resamples)
    00000e00  local     .bss:Blk_Samples_Channels (.bss:Blk_Samples_Channels)
    00001600  local     .bss:Blk_Samples_IEPTimestamp (.bss:Blk_Samples_IEPTimestamp)
    00001800  local     .bss:Blk_Samples_Status (.bss:Blk_Samples_Status)
    00001900  local     .bss:Blk_Samples_Timestamp (.bss:Blk_Samples_Timestamp)
    00001b29  local     .bss:adc_data_buff (.bss:adc_data_buff)
    00001b51  local     .bss:config_buf (.bss:config_buf)
    00001a00  local     .bss:new_samples_buffer (.bss:new_samples_buffer)
    00026000  local     .creg.PRU_CFG.noload.near (.creg.PRU_CFG.noload.near)
    00000000  local     .creg.PRU_IEP.noload.far (.creg.PRU_IEP.noload.far)
    00020000  local     .creg.PRU_INTC.noload.far (.creg.PRU_INTC.noload.far)
    00001de8  local     .data (.data)
    00001d68  local     .data:FilterCoeff$11 (.data:FilterCoeff$11)
    00001e10  local     .resource_table:retain (.resource_table:retain)
    00001e0c  local     .rodata:$P$T149$1 (.rodata:$P$T149$1)
    00001df4  local     .rodata:.string (.rodata:.string)
    00000000  local     .text (.text)
    000017d4  local     .text:AntialiasingFilter (.text:AntialiasingFilter)
    00000d60  local     .text:Check_New_Samples (.text:Check_New_Samples)
    000005d0  local     .text:Resampling (.text:Resampling)
    00001180  local     .text:Resampling_LinIntp (.text:Resampling_LinIntp)
    00000f90  local     .text:SetCTgtype (.text:SetCTgtype)
    00000888  local     .text:UpdateSettings (.text:UpdateSettings)
    00001094  local     .text:adc_init (.text:adc_init)
    0000176c  local     .text:adc_miso_config (.text:adc_miso_config)
    00001830  local     .text:clearCfg (.text:clearCfg)
    0000142c  local     .text:config1_cmd (.text:config1_cmd)
    0000122c  local     .text:config3_cmd (.text:config3_cmd)
    00000ab0  local     .text:configChn_cmd (.text:configChn_cmd)
    000016fc  local     .text:configIntc (.text:configIntc)
    000014d0  local     .text:iSwap_Bytes (.text:iSwap_Bytes)
    0000001c  local     .text:main (.text:main)
    0000197c  local     .text:rdatac_cmd (.text:rdatac_cmd)
    000012d8  local     .text:read_register (.text:read_register)
    0000167c  local     .text:receive_data (.text:receive_data)
    000019c4  local     .text:reset_cmd (.text:reset_cmd)
    00001a04  local     .text:sdatac_cmd (.text:sdatac_cmd)
    0000192c  local     .text:send_ContinuosFlag (.text:send_ContinuosFlag)
    00001384  local     .text:send_command (.text:send_command)
    00001a44  local     .text:start_cmd (.text:start_cmd)
    00001888  local     .text:uSwap_Bytes (.text:uSwap_Bytes)
    000017d4  local     AntialiasingFilter (.text:AntialiasingFilter)
    00000000  local     Blk_Resamples (.bss:Blk_Resamples)
    00000e00  local     Blk_Samples_Channels (.bss:Blk_Samples_Channels)
    00001600  local     Blk_Samples_IEPTimestamp (.bss:Blk_Samples_IEPTimestamp)
    00001800  local     Blk_Samples_Status (.bss:Blk_Samples_Status)
    00001900  local     Blk_Samples_Timestamp (.bss:Blk_Samples_Timestamp)
    00026000  weak      CT_CFG (.creg.PRU_CFG.noload.near)
    00000000  weak      CT_IEP (.creg.PRU_IEP.noload.far)
    00020000  weak      CT_INTC (.creg.PRU_INTC.noload.far)
    00001b24  local     CTg_CTSg_Setting$23 (.bss)
    00000d60  local     Check_New_Samples (.text:Check_New_Samples)
    00001af4  local     FIRRes$12 (.bss)
    00001d68  local     FilterCoeff$11 (.data:FilterCoeff$11)
    00001b10  local     Frequency_Tracking$18 (.bss)
    00001b28  local     Hardware_Version$25 (.bss)
    00001b0c  local     PRU_WR_Memory_Block$17 (.bss)
    00001b20  local     PSUVT_Revision$22 (.bss)
    00001acc  local     Prev_Frequency$3 (.bss)
    000005d0  local     Resampling (.text:Resampling)
    00001180  local     Resampling_LinIntp (.text:Resampling_LinIntp)
    00000f90  local     SetCTgtype (.text:SetCTgtype)
    00001b26  local     System_Frequency$24 (.bss)
    00000888  local     UpdateSettings (.text:UpdateSettings)
    00001b29  local     adc_data_buff (.bss:adc_data_buff)
    00001094  local     adc_init (.text:adc_init)
    0000176c  local     adc_miso_config (.text:adc_miso_config)
    00001ad0  local     alfa$4 (.bss)
    00001ac8  local     b$2 (.bss)
    00001adc  local     channel$7 (.bss)
    00001830  local     clearCfg (.text:clearCfg)
    0000142c  local     config1_cmd (.text:config1_cmd)
    0000122c  local     config3_cmd (.text:config3_cmd)
    00000ab0  local     configChn_cmd (.text:configChn_cmd)
    000016fc  local     configIntc (.text:configIntc)
    00001b51  local     config_buf (.bss:config_buf)
    000014d0  local     iSwap_Bytes (.text:iSwap_Bytes)
    00001b08  local     idx$16 (.bss)
    00001afc  local     init_timeout_cycles$13 (.bss)
    00001b00  local     init_timeout_secs$14 (.bss)
    00001ad4  local     lambda$5 (.bss)
    0000001c  global    main (.text:main)
    00001a00  local     new_samples_buffer (.bss:new_samples_buffer)
    00001b1c  local     old_res_smp_idx$21 (.bss)
    00001ae0  local     prev_raw_smp_idx$8 (.bss)
    00001df0  local     pruADCCfg (.data)
    00001e10  global    pru_remoteproc_ResourceTable (.resource_table:retain)
    00001dec  local     ptr_adc_data_buff (.data)
    00001de8  local     ptr_dsp_shm (.data)
    00001b14  local     raw_smp_idx$19 (.bss)
    0000197c  local     rdatac_cmd (.text:rdatac_cmd)
    000012d8  local     read_register (.text:read_register)
    0000167c  local     receive_data (.text:receive_data)
    00001b18  local     res_smp_idx$20 (.bss)
    000019c4  local     reset_cmd (.text:reset_cmd)
    00001a04  local     sdatac_cmd (.text:sdatac_cmd)
    0000192c  local     send_ContinuosFlag (.text:send_ContinuosFlag)
    00001384  local     send_command (.text:send_command)
    00001a44  local     start_cmd (.text:start_cmd)
    00001ad8  local     total_samples_index$6 (.bss)
    00001888  local     uSwap_Bytes (.text:uSwap_Bytes)
    00001ae4  local     x0$9 (.bss)
    00001aec  local     x1$10 (.bss)
    00001b04  local     zero$15 (.bss)
    
    
    ================================================================================
    
    <linker>
    
    << No Symbols Defined >>
    
    
    ================================================================================
    
    rtspruv3_le.lib : memcpy.asm.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001a84  local     .text (.text)
    00001a98  local     copy (.text)
    00001a84  global    memcpy (.text)
    00001ab4  local     return (.text)
    00001a8c  local     start (.text)
    
    
    ================================================================================
    
    rtspruv3_le.lib : boot.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001b68  local     .stack (.stack)
    00000000  local     .text (.text)
    00000000  local     .text:_c_int00 (.text:_c_int00)
    00000000  local     .text:_c_int00_noargs (.text:_c_int00_noargs)
    00000000  local     .text:_c_int00_noinit (.text:_c_int00_noinit)
    00000000  local     .text:_c_int00_noinit_noargs (.text:_c_int00_noinit_noargs)
    00000000  local     __TI__c_int00_specialization (__TI__c_int00_specialization)
    00000000  global    _c_int00 (.text:_c_int00)
    00000000  global    _c_int00 (.text:_c_int00)
    00000000  global    _c_int00_noargs (.text:_c_int00_noargs)
    00000000  global    _c_int00_noinit (.text:_c_int00_noinit)
    00000000  global    _c_int00_noinit_noargs (.text:_c_int00_noinit_noargs)
    00001b68  global    _stack (.stack)
    
    
    ================================================================================
    
    rtspruv3_le.lib : mpyll.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000c88  local     $C$L1 (.text:__pruabi_mpyll)
    00000ca8  local     $C$L2 (.text:__pruabi_mpyll)
    00000d18  local     $C$L3 (.text:__pruabi_mpyll)
    00000d28  local     $C$L4 (.text:__pruabi_mpyll)
    00000d40  local     $C$L5 (.text:__pruabi_mpyll)
    00000d54  local     $C$L6 (.text:__pruabi_mpyll)
    00000000  local     .text (.text)
    00000c34  local     .text:__pruabi_mpyll (.text:__pruabi_mpyll)
    00000c34  global    __pruabi_mpyll (.text:__pruabi_mpyll)
    
    
    ================================================================================
    
    rtspruv3_le.lib : mpyi.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001af4  local     $C$L1 (.text:__pruabi_mpyi)
    00001afc  local     $C$L2 (.text:__pruabi_mpyi)
    00001b08  local     $C$L3 (.text:__pruabi_mpyi)
    00000000  local     .text (.text)
    00001ae8  local     .text:__pruabi_mpyi (.text:__pruabi_mpyi)
    00001ae8  global    __pruabi_mpyi (.text:__pruabi_mpyi)
    
    
    ================================================================================
    
    rtspruv3_le.lib : divu_c.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000e88  local     $C$L1 (.text:__pruabi_divu)
    00000ee4  local     $C$L10 (.text:__pruabi_divu)
    00000ef0  local     $C$L11 (.text:__pruabi_divu)
    00000efc  local     $C$L12 (.text:__pruabi_divu)
    00000f08  local     $C$L13 (.text:__pruabi_divu)
    00000f1c  local     $C$L14 (.text:__pruabi_divu)
    00000f28  local     $C$L15 (.text:__pruabi_divu)
    00000f2c  local     $C$L16 (.text:__pruabi_divu)
    00000f44  local     $C$L17 (.text:__pruabi_divu)
    00000f50  local     $C$L18 (.text:__pruabi_divu)
    00000f58  local     $C$L19 (.text:__pruabi_divu)
    00000e8c  local     $C$L2 (.text:__pruabi_divu)
    00000f68  local     $C$L20 (.text:__pruabi_divu)
    00000f78  local     $C$L21 (.text:__pruabi_divu)
    00000e9c  local     $C$L3 (.text:__pruabi_divu)
    00000ea0  local     $C$L4 (.text:__pruabi_divu)
    00000eac  local     $C$L5 (.text:__pruabi_divu)
    00000eb4  local     $C$L6 (.text:__pruabi_divu)
    00000ec4  local     $C$L7 (.text:__pruabi_divu)
    00000ed0  local     $C$L8 (.text:__pruabi_divu)
    00000ee0  local     $C$L9 (.text:__pruabi_divu)
    00000000  local     .text (.text)
    00000e78  local     .text:__pruabi_divu (.text:__pruabi_divu)
    00000e78  global    __pruabi_divu (.text:__pruabi_divu)
    
    
    ================================================================================
    
    rtspruv3_le.lib : asrll.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001640  local     $C$L1 (.text:__pruabi_asrll)
    00001654  local     $C$L2 (.text:__pruabi_asrll)
    00001670  local     $C$L3 (.text:__pruabi_asrll)
    00000000  local     .text (.text)
    000015f4  local     .text:__pruabi_asrll (.text:__pruabi_asrll)
    000015f4  global    __pruabi_asrll (.text:__pruabi_asrll)
    
    
    ================================================================================
    
    rtspruv3_le.lib : lsrll.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001904  local     $C$L1 (.text:__pruabi_lsrll)
    00001918  local     $C$L2 (.text:__pruabi_lsrll)
    00000000  local     .text (.text)
    000018dc  local     .text:__pruabi_lsrll (.text:__pruabi_lsrll)
    000018dc  global    __pruabi_lsrll (.text:__pruabi_lsrll)
    
    
    ================================================================================
    
    rtspruv3_le.lib : autoinit.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000024  local     $C$L1 (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    00000078  local     $C$L10 (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000064  local     $C$L11 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    00000090  local     $C$L12 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    000000bc  local     $C$L13 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    000000c8  local     $C$L14 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    000000cc  local     $C$L15 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    0000004c  local     $C$L16 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000078  local     $C$L17 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000094  local     $C$L18 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    000000a0  local     $C$L19 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    0000007c  local     $C$L2 (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    000000a4  local     $C$L20 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000024  local     $C$L21 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    0000007c  local     $C$L22 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000a8  local     $C$L23 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000d4  local     $C$L24 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000e0  local     $C$L25 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000e4  local     $C$L26 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    00000020  local     $C$L27 (.text:__TI_auto_init:__TI_auto_init)
    00000064  local     $C$L28 (.text:__TI_auto_init:__TI_auto_init)
    00000090  local     $C$L29 (.text:__TI_auto_init:__TI_auto_init)
    000000a8  local     $C$L3 (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    000000ac  local     $C$L30 (.text:__TI_auto_init:__TI_auto_init)
    000000b8  local     $C$L31 (.text:__TI_auto_init:__TI_auto_init)
    000000bc  local     $C$L32 (.text:__TI_auto_init:__TI_auto_init)
    00000020  local     $C$L4 (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000064  local     $C$L5 (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000090  local     $C$L6 (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000064  local     $C$L7 (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    00000090  local     $C$L8 (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    0000004c  local     $C$L9 (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000000  local     .text (.text)
    00000000  local     .text:__TI_auto_init:__TI_auto_init (.text:__TI_auto_init:__TI_auto_init)
    00000000  local     .text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    00000000  local     .text:__TI_auto_init_nobinit:__TI_auto_init_nobinit (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000000  local     .text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    00000000  local     .text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000000  local     .text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    00000000  local     .text:__TI_auto_init_nopinit:__TI_auto_init_nopinit (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000000  local     .text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    00000000  local     __TI___TI_auto_init_specialization (__TI___TI_auto_init_specialization)
    00000000  global    __TI_auto_init (.text:__TI_auto_init:__TI_auto_init)
    00000000  global    __TI_auto_init (.text:__TI_auto_init:__TI_auto_init)
    00000000  global    __TI_auto_init_hold_wdt (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    00000000  global    __TI_auto_init_nobinit (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000000  global    __TI_auto_init_nobinit_hold_wdt (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    00000000  global    __TI_auto_init_nobinit_nopinit (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000000  global    __TI_auto_init_nobinit_nopinit_hold_wdt (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    00000000  global    __TI_auto_init_nopinit (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000000  global    __TI_auto_init_nopinit_hold_wdt (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    
    
    ================================================================================
    
    rtspruv3_le.lib : startup.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000000  local     .text (.text)
    00000000  local     .text:_system_post_cinit (.text:_system_post_cinit)
    00000000  global    _system_post_cinit (.text:_system_post_cinit)
    
    
    ================================================================================
    
    rtspruv3_le.lib : cpy_tbl.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000018  local     $C$L1 (.text:copy_in)
    00000064  local     $C$L2 (.text:copy_in)
    00000070  local     $C$L3 (.text:copy_in)
    00000074  local     $C$L4 (.text:copy_in)
    00000078  local     $C$L5 (.text:copy_in)
    00000000  local     .text (.text)
    00000000  local     .text:copy_in (.text:copy_in)
    00000000  global    copy_in (.text:copy_in)
    
    
    ================================================================================
    
    rtspruv3_le.lib : exit.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001b2c  local     $C$L1 (.text:abort)
    00000034  local     $C$L2 (.text:exit)
    00000048  local     $C$L3 (.text:exit)
    00000000  local     $O1$$ (.fardata:$O1$$)
    00000000  local     .fardata:$O1$$ (.fardata:$O1$$)
    00000000  local     .text (.text)
    00001b28  local     .text:abort (.text:abort)
    00000000  local     .text:exit (.text:exit)
    00001b30  local     .text:loader_exit (.text:loader_exit)
    00001b30  global    C$$EXIT (.text:loader_exit)
    00000000  global    __TI_cleanup_ptr (.fardata:$O1$$)
    00000002  global    __TI_dtors_ptr (.fardata:$O1$$)
    00001b28  local     __TI_exit_specialization (__TI_exit_specialization)
    00001b28  global    abort (.text:abort)
    00000000  global    exit (.text:exit)
    00001b28  global    exit (.text:exit)
    00001b30  local     loader_exit (.text:loader_exit)
    
    
    ================================================================================
    
    rtspruv3_le.lib : _lock.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000000  local     $O1$$ (.fardata:$O1$$)
    00000000  local     .fardata:$O1$$ (.fardata:$O1$$)
    00000000  local     .text (.text)
    00000000  local     .text:_nop (.text:_nop)
    00000000  local     .text:_register_lock (.text:_register_lock)
    00000000  local     .text:_register_unlock (.text:_register_unlock)
    00000000  global    _lock (.fardata:$O1$$)
    00000000  global    _nop (.text:_nop)
    00000000  global    _register_lock (.text:_register_lock)
    00000000  global    _register_unlock (.text:_register_unlock)
    00000002  global    _unlock (.fardata:$O1$$)
    
    
    ================================================================================
    
    rtspruv3_le.lib : args_main.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000028  local     $C$L1 (.text:_args_main)
    00000038  local     $C$L2 (.text:_args_main)
    00000000  local     .text (.text)
    00000000  local     .text:_args_main (.text:_args_main)
    00000000  global    _args_main (.text:_args_main)
    
    
    ================================================================================
    
    rtspruv3_le.lib : memset.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001b14  local     $C$L1 (.text:memset)
    00001b24  local     $C$L2 (.text:memset)
    00000000  local     .text (.text)
    00001b0c  local     .text:memset (.text:memset)
    00001b0c  global    memset (.text:memset)
    
    
    ================================================================================
    
    rtspruv3_le.lib : asri.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001ad4  local     $C$L1 (.text:__pruabi_asri)
    00001ae4  local     $C$L2 (.text:__pruabi_asri)
    00000000  local     .text (.text)
    00001ab8  local     .text:__pruabi_asri (.text:__pruabi_asri)
    00001ab8  global    __pruabi_asri (.text:__pruabi_asri)
    
    
    ================================================================================
    
    
    ******************************************************************************
                         PRU Linker Unix v2.3.3                    
    ******************************************************************************
    >> Linked Tue Mar 26 16:20:28 2024
    
    OUTPUT FILE NAME:   <PRU_ADC_BRIDGE_CONTROLLER.out>
    ENTRY POINT SYMBOL: "_c_int00_noinit_noargs"  address: 00000000
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
    PAGE 0:
      PRU_IMEM              00000000   00003000  00001b38  000014c8  RWIX
    
    PAGE 1:
      PRU_DMEM_0_1          00000000   00002000  00001e22  000001de  RWIX
      PRU_DMEM_1_0          00002000   00002000  00000000  00002000  RWIX
    
    PAGE 2:
      PRU_SHAREDMEM         00010000   00008000  00000000  00008000  RWIX
      PRU_INTC              00020000   00001504  00001504  00000000  RWIX
      PRU_CFG               00026000   00000120  0000011c  00000004  RWIX
      PRU_UART              00028000   00000038  00000000  00000038  RWIX
      PRU_IEP               0002e000   0000031c  00000000  0000031c  RWIX
      PRU_ECAP              00030000   00000060  00000000  00000060  RWIX
      RSVD27                00032000   00000100  00000000  00000100  RWIX
      RSVD21                00032400   00000100  00000000  00000100  RWIX
      L3OCMC                40000000   00010000  00000000  00010000  RWIX
      MCASP3_DMA            46000000   00000100  00000000  00000100  RWIX
      RSVD11                48022000   00000088  00000000  00000088  RWIX
      RSVD12                48024000   00000088  00000000  00000088  RWIX
      RSVD2                 4802a000   000000d8  00000000  000000d8  RWIX
      RSVD6                 48030000   000001a4  00000000  000001a4  RWIX
      RSVD1                 48040000   0000005c  00000000  0000005c  RWIX
      I2C3                  48060000   00000300  00000000  00000300  RWIX
      RSVD22                480c8000   00000140  00000000  00000140  RWIX
      RSVD23                480ca000   00000880  00000000  00000880  RWIX
      RSVD17                4819c000   000000d8  00000000  000000d8  RWIX
      RSVD16                481a0000   000001a4  00000000  000001a4  RWIX
      RSVD14                481cc000   000001e8  00000000  000001e8  RWIX
      RSVD15                481d0000   000001e8  00000000  000001e8  RWIX
      RSVD18                48300000   000002c4  00000000  000002c4  RWIX
      RSVD19                48302000   000002c4  00000000  000002c4  RWIX
      RSVD20                48304000   000002c4  00000000  000002c4  RWIX
      RSVD13                48310000   00000100  00000000  00000100  RWIX
      RSVD10                48318000   00000100  00000000  00000100  RWIX
      RSVD29                49000000   00001098  00000000  00001098  RWIX
      RSVD9                 4a100000   0000128c  00000000  0000128c  RWIX
      DDR                   80000000   00000100  00000000  00000100  RWIX
      PRUADC_DDR_CARVEOUT   9f800000   00800000  00000000  00800000  RWIX
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .text:_c_int00* 
    *          0    00000000    0000001c     
                      00000000    0000001c     rtspruv3_le.lib : boot.c.obj (.text:_c_int00_noinit_noargs)
    
    .text      0    0000001c    00001b1c     
                      0000001c    000005b4     PRU_ADS131E08_Controller.obj (.text:main)
                      000005d0    000002b8     PRU_ADS131E08_Controller.obj (.text:Resampling)
                      00000888    00000228     PRU_ADS131E08_Controller.obj (.text:UpdateSettings)
                      00000ab0    00000184     PRU_ADS131E08_Controller.obj (.text:configChn_cmd)
                      00000c34    0000012c     rtspruv3_le.lib : mpyll.c.obj (.text:__pruabi_mpyll)
                      00000d60    00000118     PRU_ADS131E08_Controller.obj (.text:Check_New_Samples)
                      00000e78    00000118     rtspruv3_le.lib : divu_c.c.obj (.text:__pruabi_divu)
                      00000f90    00000104     PRU_ADS131E08_Controller.obj (.text:SetCTgtype)
                      00001094    000000ec     PRU_ADS131E08_Controller.obj (.text:adc_init)
                      00001180    000000ac     PRU_ADS131E08_Controller.obj (.text:Resampling_LinIntp)
                      0000122c    000000ac     PRU_ADS131E08_Controller.obj (.text:config3_cmd)
                      000012d8    000000ac     PRU_ADS131E08_Controller.obj (.text:read_register)
                      00001384    000000a8     PRU_ADS131E08_Controller.obj (.text:send_command)
                      0000142c    000000a4     PRU_ADS131E08_Controller.obj (.text:config1_cmd)
                      000014d0    00000094     PRU_ADS131E08_Controller.obj (.text:iSwap_Bytes)
                      00001564    00000090     FIRFilter32bits.obj (.text)
                      000015f4    00000088     rtspruv3_le.lib : asrll.c.obj (.text:__pruabi_asrll)
                      0000167c    00000080     PRU_ADS131E08_Controller.obj (.text:receive_data)
                      000016fc    00000070     PRU_ADS131E08_Controller.obj (.text:configIntc)
                      0000176c    00000068     PRU_ADS131E08_Controller.obj (.text:adc_miso_config)
                      000017d4    0000005c     PRU_ADS131E08_Controller.obj (.text:AntialiasingFilter)
                      00001830    00000058     PRU_ADS131E08_Controller.obj (.text:clearCfg)
                      00001888    00000054     PRU_ADS131E08_Controller.obj (.text:uSwap_Bytes)
                      000018dc    00000050     rtspruv3_le.lib : lsrll.c.obj (.text:__pruabi_lsrll)
                      0000192c    00000050     PRU_ADS131E08_Controller.obj (.text:send_ContinuosFlag)
                      0000197c    00000048     PRU_ADS131E08_Controller.obj (.text:rdatac_cmd)
                      000019c4    00000040     PRU_ADS131E08_Controller.obj (.text:reset_cmd)
                      00001a04    00000040     PRU_ADS131E08_Controller.obj (.text:sdatac_cmd)
                      00001a44    00000040     PRU_ADS131E08_Controller.obj (.text:start_cmd)
                      00001a84    00000034     rtspruv3_le.lib : memcpy.asm.obj (.text)
                      00001ab8    00000030                     : asri.c.obj (.text:__pruabi_asri)
                      00001ae8    00000024                     : mpyi.c.obj (.text:__pruabi_mpyi)
                      00001b0c    0000001c                     : memset.c.obj (.text:memset)
                      00001b28    00000008                     : exit.c.obj (.text:abort)
                      00001b30    00000008                     : exit.c.obj (.text:loader_exit)
    
    .bss       1    00000000    00001b42     UNINITIALIZED
                      00000000    00000e00     PRU_ADS131E08_Controller.obj (.bss:Blk_Resamples)
                      00000e00    00000800     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_Channels)
                      00001600    00000200     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_IEPTimestamp)
                      00001800    00000100     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_Status)
                      00001900    00000100     PRU_ADS131E08_Controller.obj (.bss:Blk_Samples_Timestamp)
                      00001a00    000000c8     PRU_ADS131E08_Controller.obj (.bss:new_samples_buffer)
                      00001ac8    0000003d     PRU_ADS131E08_Controller.obj (.bss)
                      00001b05    00000028     PRU_ADS131E08_Controller.obj (.bss:adc_data_buff)
                      00001b2d    00000015     PRU_ADS131E08_Controller.obj (.bss:config_buf)
    
    .stack     1    00001b44    00000200     UNINITIALIZED
                      00001b44    00000004     rtspruv3_le.lib : boot.c.obj (.stack)
                      00001b48    000001fc     --HOLE--
    
    .data      1    00001d44    000000b0     
                      00001d44    00000080     PRU_ADS131E08_Controller.obj (.data:FilterCoeff$11)
                      00001dc4    00000030     PRU_ADS131E08_Controller.obj (.data)
    
    .cinit     1    00000000    00000000     UNINITIALIZED
    
    .rodata    1    00001df4    0000001c     
                      00001df4    00000018     PRU_ADS131E08_Controller.obj (.rodata:.string)
                      00001e0c    00000004     PRU_ADS131E08_Controller.obj (.rodata:$P$T149$1)
    
    .resource_table 
    *          1    00001e10    00000014     
                      00001e10    00000014     PRU_ADS131E08_Controller.obj (.resource_table:retain)
    
    .creg.PRU_INTC.noload.near 
    *          2    00020000    00000000     NOLOAD SECTION
    
    .creg.PRU_INTC.near 
    *          2    00020000    00000000     UNINITIALIZED
    
    .creg.PRU_INTC.noload.far 
    *          2    00020000    00001504     NOLOAD SECTION
                      00020000    00001504     PRU_ADS131E08_Controller.obj (.creg.PRU_INTC.noload.far)
    
    .creg.PRU_INTC.far 
    *          2    00021504    00000000     UNINITIALIZED
    
    .creg.PRU_CFG.noload.near 
    *          2    00026000    0000011c     NOLOAD SECTION
                      00026000    0000011c     PRU_ADS131E08_Controller.obj (.creg.PRU_CFG.noload.near)
    
    .creg.PRU_CFG.near 
    *          2    0002611c    00000000     UNINITIALIZED
    
    .creg.PRU_CFG.noload.far 
    *          2    0002611c    00000000     NOLOAD SECTION
    
    .creg.PRU_CFG.far 
    *          2    0002611c    00000000     UNINITIALIZED
    
    MODULE SUMMARY
    
           Module                         code   ro data   rw data
           ------                         ----   -------   -------
        <current directory>
           PRU_ADS131E08_Controller.obj   5820   28        12838  
           FIRFilter32bits.obj            144    0         0      
        +--+------------------------------+------+---------+---------+
           Total:                         5964   28        12838  
                                                                  
        /home/bridge/ti_processor_sdk_rtos_am57xx_08_01_00_09/ti-cgt-pru_2.3.3/lib/rtspruv3_le.lib
           mpyll.c.obj                    300    0         0      
           divu_c.c.obj                   280    0         0      
           asrll.c.obj                    136    0         0      
           lsrll.c.obj                    80     0         0      
           memcpy.asm.obj                 52     0         0      
           asri.c.obj                     48     0         0      
           mpyi.c.obj                     36     0         0      
           boot.c.obj                     28     0         0      
           memset.c.obj                   28     0         0      
           exit.c.obj                     16     0         0      
        +--+------------------------------+------+---------+---------+
           Total:                         1004   0         0      
                                                                  
           Stack:                         0      0         512    
        +--+------------------------------+------+---------+---------+
           Grand Total:                   6968   28        13350  
    
    
    SEGMENT ATTRIBUTES
    
        id tag      seg value
        -- ---      --- -----
         0 PHA_PAGE 1   1    
         1 PHA_PAGE 2   1    
         2 PHA_PAGE 3   1    
         3 PHA_PAGE 4   1    
         4 PHA_PAGE 5   1    
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    page  address   name                         
    ----  -------   ----                         
    0     00001b30  C$$EXIT                      
    2     00026000  CT_CFG                       
    2     00020000  CT_INTC                      
    0     00001564  FIRsigned32                  
    abs   80000000  __PRU_CREG_BASE_DDR          
    abs   48060000  __PRU_CREG_BASE_I2C3         
    abs   40000000  __PRU_CREG_BASE_L3OCMC       
    abs   46000000  __PRU_CREG_BASE_MCASP3_DMA   
    abs   00026000  __PRU_CREG_BASE_PRU_CFG      
    abs   00000000  __PRU_CREG_BASE_PRU_DMEM_0_1 
    abs   00002000  __PRU_CREG_BASE_PRU_DMEM_1_0 
    abs   00030000  __PRU_CREG_BASE_PRU_ECAP     
    abs   0002e000  __PRU_CREG_BASE_PRU_IEP      
    abs   00020000  __PRU_CREG_BASE_PRU_INTC     
    abs   00010000  __PRU_CREG_BASE_PRU_SHAREDMEM
    abs   00028000  __PRU_CREG_BASE_PRU_UART     
    abs   48040000  __PRU_CREG_BASE_RSVD1        
    abs   48318000  __PRU_CREG_BASE_RSVD10       
    abs   48022000  __PRU_CREG_BASE_RSVD11       
    abs   48024000  __PRU_CREG_BASE_RSVD12       
    abs   48310000  __PRU_CREG_BASE_RSVD13       
    abs   481cc000  __PRU_CREG_BASE_RSVD14       
    abs   481d0000  __PRU_CREG_BASE_RSVD15       
    abs   481a0000  __PRU_CREG_BASE_RSVD16       
    abs   4819c000  __PRU_CREG_BASE_RSVD17       
    abs   48300000  __PRU_CREG_BASE_RSVD18       
    abs   48302000  __PRU_CREG_BASE_RSVD19       
    abs   4802a000  __PRU_CREG_BASE_RSVD2        
    abs   48304000  __PRU_CREG_BASE_RSVD20       
    abs   00032400  __PRU_CREG_BASE_RSVD21       
    abs   480c8000  __PRU_CREG_BASE_RSVD22       
    abs   480ca000  __PRU_CREG_BASE_RSVD23       
    abs   00032000  __PRU_CREG_BASE_RSVD27       
    abs   49000000  __PRU_CREG_BASE_RSVD29       
    abs   48030000  __PRU_CREG_BASE_RSVD6        
    abs   4a100000  __PRU_CREG_BASE_RSVD9        
    abs   0000001f  __PRU_CREG_DDR               
    abs   00000005  __PRU_CREG_I2C3              
    abs   0000001e  __PRU_CREG_L3OCMC            
    abs   00000008  __PRU_CREG_MCASP3_DMA        
    abs   00000004  __PRU_CREG_PRU_CFG           
    abs   00000018  __PRU_CREG_PRU_DMEM_0_1      
    abs   00000019  __PRU_CREG_PRU_DMEM_1_0      
    abs   00000003  __PRU_CREG_PRU_ECAP          
    abs   0000001a  __PRU_CREG_PRU_IEP           
    abs   00000000  __PRU_CREG_PRU_INTC          
    abs   0000001c  __PRU_CREG_PRU_SHAREDMEM     
    abs   00000007  __PRU_CREG_PRU_UART          
    abs   00000001  __PRU_CREG_RSVD1             
    abs   0000000a  __PRU_CREG_RSVD10            
    abs   0000000b  __PRU_CREG_RSVD11            
    abs   0000000c  __PRU_CREG_RSVD12            
    abs   0000000d  __PRU_CREG_RSVD13            
    abs   0000000e  __PRU_CREG_RSVD14            
    abs   0000000f  __PRU_CREG_RSVD15            
    abs   00000010  __PRU_CREG_RSVD16            
    abs   00000011  __PRU_CREG_RSVD17            
    abs   00000012  __PRU_CREG_RSVD18            
    abs   00000013  __PRU_CREG_RSVD19            
    abs   00000002  __PRU_CREG_RSVD2             
    abs   00000014  __PRU_CREG_RSVD20            
    abs   00000015  __PRU_CREG_RSVD21            
    abs   00000016  __PRU_CREG_RSVD22            
    abs   00000017  __PRU_CREG_RSVD23            
    abs   0000001b  __PRU_CREG_RSVD27            
    abs   0000001d  __PRU_CREG_RSVD29            
    abs   00000006  __PRU_CREG_RSVD6             
    abs   00000009  __PRU_CREG_RSVD9             
    1     00001d44  __TI_STACK_END               
    abs   00000200  __TI_STACK_SIZE              
    abs   ffffffff  __c_args__                   
    0     00001ab8  __pruabi_asri                
    0     000015f4  __pruabi_asrll               
    0     00000e78  __pruabi_divu                
    0     000018dc  __pruabi_lsrll               
    0     00001ae8  __pruabi_mpyi                
    0     00000c34  __pruabi_mpyll               
    0     00000000  _c_int00_noinit_noargs       
    1     00001b44  _stack                       
    0     00001b28  abort                        
    0     0000001c  main                         
    0     00001a84  memcpy                       
    0     00001b0c  memset                       
    1     00001e10  pru_remoteproc_ResourceTable 
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    page  address   name                         
    ----  -------   ----                         
    0     00000000  _c_int00_noinit_noargs       
    0     0000001c  main                         
    0     00000c34  __pruabi_mpyll               
    0     00000e78  __pruabi_divu                
    0     00001564  FIRsigned32                  
    0     000015f4  __pruabi_asrll               
    0     000018dc  __pruabi_lsrll               
    0     00001a84  memcpy                       
    0     00001ab8  __pruabi_asri                
    0     00001ae8  __pruabi_mpyi                
    0     00001b0c  memset                       
    0     00001b28  abort                        
    0     00001b30  C$$EXIT                      
    1     00001b44  _stack                       
    1     00001d44  __TI_STACK_END               
    1     00001e10  pru_remoteproc_ResourceTable 
    2     00020000  CT_INTC                      
    2     00026000  CT_CFG                       
    abs   00000000  __PRU_CREG_BASE_PRU_DMEM_0_1 
    abs   00000000  __PRU_CREG_PRU_INTC          
    abs   00000001  __PRU_CREG_RSVD1             
    abs   00000002  __PRU_CREG_RSVD2             
    abs   00000003  __PRU_CREG_PRU_ECAP          
    abs   00000004  __PRU_CREG_PRU_CFG           
    abs   00000005  __PRU_CREG_I2C3              
    abs   00000006  __PRU_CREG_RSVD6             
    abs   00000007  __PRU_CREG_PRU_UART          
    abs   00000008  __PRU_CREG_MCASP3_DMA        
    abs   00000009  __PRU_CREG_RSVD9             
    abs   0000000a  __PRU_CREG_RSVD10            
    abs   0000000b  __PRU_CREG_RSVD11            
    abs   0000000c  __PRU_CREG_RSVD12            
    abs   0000000d  __PRU_CREG_RSVD13            
    abs   0000000e  __PRU_CREG_RSVD14            
    abs   0000000f  __PRU_CREG_RSVD15            
    abs   00000010  __PRU_CREG_RSVD16            
    abs   00000011  __PRU_CREG_RSVD17            
    abs   00000012  __PRU_CREG_RSVD18            
    abs   00000013  __PRU_CREG_RSVD19            
    abs   00000014  __PRU_CREG_RSVD20            
    abs   00000015  __PRU_CREG_RSVD21            
    abs   00000016  __PRU_CREG_RSVD22            
    abs   00000017  __PRU_CREG_RSVD23            
    abs   00000018  __PRU_CREG_PRU_DMEM_0_1      
    abs   00000019  __PRU_CREG_PRU_DMEM_1_0      
    abs   0000001a  __PRU_CREG_PRU_IEP           
    abs   0000001b  __PRU_CREG_RSVD27            
    abs   0000001c  __PRU_CREG_PRU_SHAREDMEM     
    abs   0000001d  __PRU_CREG_RSVD29            
    abs   0000001e  __PRU_CREG_L3OCMC            
    abs   0000001f  __PRU_CREG_DDR               
    abs   00000200  __TI_STACK_SIZE              
    abs   00002000  __PRU_CREG_BASE_PRU_DMEM_1_0 
    abs   00010000  __PRU_CREG_BASE_PRU_SHAREDMEM
    abs   00020000  __PRU_CREG_BASE_PRU_INTC     
    abs   00026000  __PRU_CREG_BASE_PRU_CFG      
    abs   00028000  __PRU_CREG_BASE_PRU_UART     
    abs   0002e000  __PRU_CREG_BASE_PRU_IEP      
    abs   00030000  __PRU_CREG_BASE_PRU_ECAP     
    abs   00032000  __PRU_CREG_BASE_RSVD27       
    abs   00032400  __PRU_CREG_BASE_RSVD21       
    abs   40000000  __PRU_CREG_BASE_L3OCMC       
    abs   46000000  __PRU_CREG_BASE_MCASP3_DMA   
    abs   48022000  __PRU_CREG_BASE_RSVD11       
    abs   48024000  __PRU_CREG_BASE_RSVD12       
    abs   4802a000  __PRU_CREG_BASE_RSVD2        
    abs   48030000  __PRU_CREG_BASE_RSVD6        
    abs   48040000  __PRU_CREG_BASE_RSVD1        
    abs   48060000  __PRU_CREG_BASE_I2C3         
    abs   480c8000  __PRU_CREG_BASE_RSVD22       
    abs   480ca000  __PRU_CREG_BASE_RSVD23       
    abs   4819c000  __PRU_CREG_BASE_RSVD17       
    abs   481a0000  __PRU_CREG_BASE_RSVD16       
    abs   481cc000  __PRU_CREG_BASE_RSVD14       
    abs   481d0000  __PRU_CREG_BASE_RSVD15       
    abs   48300000  __PRU_CREG_BASE_RSVD18       
    abs   48302000  __PRU_CREG_BASE_RSVD19       
    abs   48304000  __PRU_CREG_BASE_RSVD20       
    abs   48310000  __PRU_CREG_BASE_RSVD13       
    abs   48318000  __PRU_CREG_BASE_RSVD10       
    abs   49000000  __PRU_CREG_BASE_RSVD29       
    abs   4a100000  __PRU_CREG_BASE_RSVD9        
    abs   80000000  __PRU_CREG_BASE_DDR          
    abs   ffffffff  __c_args__                   
    
    [84 symbols]
    
    
    SYMBOL DEFINITIONS BY INPUT FILE 
    
    ================================================================================
    
    FIRFilter32bits.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001564  local     .text (.text)
    000015d8  local     Exit2 (.text)
    00001564  global    FIRsigned32 (.text)
    0000158c  local     Firmulsign (.text)
    000015ac  local     positive_coeff (.text)
    000015a4  local     positive_sample (.text)
    
    
    ================================================================================
    
    PRU_ADS131E08_Controller.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001860  local     $C$L1 (.text:clearCfg)
    000016c0  local     $C$L10 (.text:receive_data)
    00001960  local     $C$L11 (.text:send_ContinuosFlag)
    00001968  local     $C$L12 (.text:send_ContinuosFlag)
    000017b4  local     $C$L13 (.text:adc_miso_config)
    000017bc  local     $C$L14 (.text:adc_miso_config)
    000014c0  local     $C$L15 (.text:config1_cmd)
    000012c8  local     $C$L16 (.text:config3_cmd)
    00000ae8  local     $C$L17 (.text:configChn_cmd)
    00000af0  local     $C$L18 (.text:configChn_cmd)
    00000bf8  local     $C$L19 (.text:configChn_cmd)
    00001880  local     $C$L2 (.text:clearCfg)
    00000c14  local     $C$L20 (.text:configChn_cmd)
    00000c24  local     $C$L21 (.text:configChn_cmd)
    00000c28  local     $C$L22 (.text:configChn_cmd)
    00000fe4  local     $C$L23 (.text:SetCTgtype)
    00000ff0  local     $C$L24 (.text:SetCTgtype)
    00001054  local     $C$L25 (.text:SetCTgtype)
    00001060  local     $C$L26 (.text:SetCTgtype)
    00001084  local     $C$L27 (.text:SetCTgtype)
    00001308  local     $C$L28 (.text:read_register)
    00001328  local     $C$L29 (.text:read_register)
    000013a8  local     $C$L3 (.text:send_command)
    000010f0  local     $C$L30 (.text:adc_init)
    00001104  local     $C$L31 (.text:adc_init)
    00001118  local     $C$L32 (.text:adc_init)
    00001130  local     $C$L33 (.text:adc_init)
    00001148  local     $C$L34 (.text:adc_init)
    00001504  local     $C$L35 (.text:iSwap_Bytes)
    00001544  local     $C$L36 (.text:iSwap_Bytes)
    00001558  local     $C$L37 (.text:iSwap_Bytes)
    000018bc  local     $C$L38 (.text:uSwap_Bytes)
    00000db0  local     $C$L39 (.text:Check_New_Samples)
    000013b0  local     $C$L4 (.text:send_command)
    00000ddc  local     $C$L40 (.text:Check_New_Samples)
    00000e0c  local     $C$L41 (.text:Check_New_Samples)
    00000e14  local     $C$L42 (.text:Check_New_Samples)
    00000e3c  local     $C$L43 (.text:Check_New_Samples)
    00000e40  local     $C$L44 (.text:Check_New_Samples)
    00000e68  local     $C$L45 (.text:Check_New_Samples)
    000011d8  local     $C$L46 (.text:Resampling_LinIntp)
    00001214  local     $C$L47 (.text:Resampling_LinIntp)
    00001220  local     $C$L48 (.text:Resampling_LinIntp)
    00000688  local     $C$L49 (.text:Resampling)
    000013e8  local     $C$L5 (.text:send_command)
    00000710  local     $C$L50 (.text:Resampling)
    00000738  local     $C$L51 (.text:Resampling)
    0000075c  local     $C$L52 (.text:Resampling)
    00000784  local     $C$L53 (.text:Resampling)
    00000804  local     $C$L54 (.text:Resampling)
    0000082c  local     $C$L55 (.text:Resampling)
    000008cc  local     $C$L56 (.text:UpdateSettings)
    000008d8  local     $C$L57 (.text:UpdateSettings)
    0000090c  local     $C$L58 (.text:UpdateSettings)
    00000964  local     $C$L59 (.text:UpdateSettings)
    000013f0  local     $C$L6 (.text:send_command)
    00000974  local     $C$L60 (.text:UpdateSettings)
    000009cc  local     $C$L61 (.text:UpdateSettings)
    000009dc  local     $C$L62 (.text:UpdateSettings)
    000009e0  local     $C$L63 (.text:UpdateSettings)
    00000a04  local     $C$L64 (.text:UpdateSettings)
    00000a48  local     $C$L65 (.text:UpdateSettings)
    00000a58  local     $C$L66 (.text:UpdateSettings)
    00000a70  local     $C$L67 (.text:UpdateSettings)
    00000a80  local     $C$L68 (.text:UpdateSettings)
    00000aa0  local     $C$L69 (.text:UpdateSettings)
    00001404  local     $C$L7 (.text:send_command)
    00000140  local     $C$L70 (.text:main)
    00000178  local     $C$L71 (.text:main)
    00000190  local     $C$L72 (.text:main)
    00000190  local     $C$L73 (.text:main)
    000001c0  local     $C$L74 (.text:main)
    000001e4  local     $C$L75 (.text:main)
    00000394  local     $C$L76 (.text:main)
    00000474  local     $C$L77 (.text:main)
    000004dc  local     $C$L78 (.text:main)
    000004ec  local     $C$L79 (.text:main)
    0000140c  local     $C$L8 (.text:send_command)
    00000590  local     $C$L80 (.text:main)
    000005b8  local     $C$L81 (.text:main)
    000016b8  local     $C$L9 (.text:receive_data)
    00001df4  local     $C$SL1 (.rodata:.string)
    00001e00  local     $C$SL2 (.rodata:.string)
    00001e0c  local     $P$T149$1 (.rodata:$P$T149$1)
    00001ac8  local     .bss (.bss)
    00000000  local     .bss:Blk_Resamples (.bss:Blk_Resamples)
    00000e00  local     .bss:Blk_Samples_Channels (.bss:Blk_Samples_Channels)
    00001600  local     .bss:Blk_Samples_IEPTimestamp (.bss:Blk_Samples_IEPTimestamp)
    00001800  local     .bss:Blk_Samples_Status (.bss:Blk_Samples_Status)
    00001900  local     .bss:Blk_Samples_Timestamp (.bss:Blk_Samples_Timestamp)
    00001b05  local     .bss:adc_data_buff (.bss:adc_data_buff)
    00001b2d  local     .bss:config_buf (.bss:config_buf)
    00001a00  local     .bss:new_samples_buffer (.bss:new_samples_buffer)
    00026000  local     .creg.PRU_CFG.noload.near (.creg.PRU_CFG.noload.near)
    00000000  local     .creg.PRU_IEP.noload.far (.creg.PRU_IEP.noload.far)
    00020000  local     .creg.PRU_INTC.noload.far (.creg.PRU_INTC.noload.far)
    00001dc4  local     .data (.data)
    00001d44  local     .data:FilterCoeff$11 (.data:FilterCoeff$11)
    00001e10  local     .resource_table:retain (.resource_table:retain)
    00001e0c  local     .rodata:$P$T149$1 (.rodata:$P$T149$1)
    00001df4  local     .rodata:.string (.rodata:.string)
    00000000  local     .text (.text)
    000017d4  local     .text:AntialiasingFilter (.text:AntialiasingFilter)
    00000d60  local     .text:Check_New_Samples (.text:Check_New_Samples)
    000005d0  local     .text:Resampling (.text:Resampling)
    00001180  local     .text:Resampling_LinIntp (.text:Resampling_LinIntp)
    00000f90  local     .text:SetCTgtype (.text:SetCTgtype)
    00000888  local     .text:UpdateSettings (.text:UpdateSettings)
    00001094  local     .text:adc_init (.text:adc_init)
    0000176c  local     .text:adc_miso_config (.text:adc_miso_config)
    00001830  local     .text:clearCfg (.text:clearCfg)
    0000142c  local     .text:config1_cmd (.text:config1_cmd)
    0000122c  local     .text:config3_cmd (.text:config3_cmd)
    00000ab0  local     .text:configChn_cmd (.text:configChn_cmd)
    000016fc  local     .text:configIntc (.text:configIntc)
    000014d0  local     .text:iSwap_Bytes (.text:iSwap_Bytes)
    0000001c  local     .text:main (.text:main)
    0000197c  local     .text:rdatac_cmd (.text:rdatac_cmd)
    000012d8  local     .text:read_register (.text:read_register)
    0000167c  local     .text:receive_data (.text:receive_data)
    000019c4  local     .text:reset_cmd (.text:reset_cmd)
    00001a04  local     .text:sdatac_cmd (.text:sdatac_cmd)
    0000192c  local     .text:send_ContinuosFlag (.text:send_ContinuosFlag)
    00001384  local     .text:send_command (.text:send_command)
    00001a44  local     .text:start_cmd (.text:start_cmd)
    00001888  local     .text:uSwap_Bytes (.text:uSwap_Bytes)
    000017d4  local     AntialiasingFilter (.text:AntialiasingFilter)
    00000000  local     Blk_Resamples (.bss:Blk_Resamples)
    00000e00  local     Blk_Samples_Channels (.bss:Blk_Samples_Channels)
    00001600  local     Blk_Samples_IEPTimestamp (.bss:Blk_Samples_IEPTimestamp)
    00001800  local     Blk_Samples_Status (.bss:Blk_Samples_Status)
    00001900  local     Blk_Samples_Timestamp (.bss:Blk_Samples_Timestamp)
    00026000  weak      CT_CFG (.creg.PRU_CFG.noload.near)
    00000000  weak      CT_IEP (.creg.PRU_IEP.noload.far)
    00020000  weak      CT_INTC (.creg.PRU_INTC.noload.far)
    00001b00  local     CTg_CTSg_Setting$23 (.bss)
    00000d60  local     Check_New_Samples (.text:Check_New_Samples)
    00001ae8  local     FIRRes$12 (.bss)
    00001d44  local     FilterCoeff$11 (.data:FilterCoeff$11)
    00001af8  local     Frequency_Tracking$21 (.bss)
    00001b04  local     Hardware_Version$25 (.bss)
    00001af4  local     PRU_WR_Memory_Block$20 (.bss)
    00001afc  local     PSUVT_Revision$22 (.bss)
    00001dd0  local     Prev_Frequency$3 (.data)
    000005d0  local     Resampling (.text:Resampling)
    00001180  local     Resampling_LinIntp (.text:Resampling_LinIntp)
    00000f90  local     SetCTgtype (.text:SetCTgtype)
    00001b02  local     System_Frequency$24 (.bss)
    00000888  local     UpdateSettings (.text:UpdateSettings)
    00001b05  local     adc_data_buff (.bss:adc_data_buff)
    00001094  local     adc_init (.text:adc_init)
    0000176c  local     adc_miso_config (.text:adc_miso_config)
    00001dd4  local     alfa$4 (.data)
    00001ac8  local     b$2 (.bss)
    00001ad0  local     channel$7 (.bss)
    00001830  local     clearCfg (.text:clearCfg)
    0000142c  local     config1_cmd (.text:config1_cmd)
    0000122c  local     config3_cmd (.text:config3_cmd)
    00000ab0  local     configChn_cmd (.text:configChn_cmd)
    000016fc  local     configIntc (.text:configIntc)
    00001b2d  local     config_buf (.bss:config_buf)
    000014d0  local     iSwap_Bytes (.text:iSwap_Bytes)
    00001af0  local     idx$19 (.bss)
    00001ddc  local     init_timeout_cycles$13 (.data)
    00001de0  local     init_timeout_secs$14 (.data)
    00001acc  local     lambda$5 (.bss)
    0000001c  global    main (.text:main)
    00001a00  local     new_samples_buffer (.bss:new_samples_buffer)
    00001df0  local     old_res_smp_idx$18 (.data)
    00001ad4  local     prev_raw_smp_idx$8 (.bss)
    00001dcc  local     pruADCCfg (.data)
    00001e10  global    pru_remoteproc_ResourceTable (.resource_table:retain)
    00001dc8  local     ptr_adc_data_buff (.data)
    00001dc4  local     ptr_dsp_shm (.data)
    00001de8  local     raw_smp_idx$16 (.data)
    0000197c  local     rdatac_cmd (.text:rdatac_cmd)
    000012d8  local     read_register (.text:read_register)
    0000167c  local     receive_data (.text:receive_data)
    00001dec  local     res_smp_idx$17 (.data)
    000019c4  local     reset_cmd (.text:reset_cmd)
    00001a04  local     sdatac_cmd (.text:sdatac_cmd)
    0000192c  local     send_ContinuosFlag (.text:send_ContinuosFlag)
    00001384  local     send_command (.text:send_command)
    00001a44  local     start_cmd (.text:start_cmd)
    00001dd8  local     total_samples_index$6 (.data)
    00001888  local     uSwap_Bytes (.text:uSwap_Bytes)
    00001ad8  local     x0$9 (.bss)
    00001ae0  local     x1$10 (.bss)
    00001de4  local     zero$15 (.data)
    
    
    ================================================================================
    
    <linker>
    
    << No Symbols Defined >>
    
    
    ================================================================================
    
    rtspruv3_le.lib : memcpy.asm.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001a84  local     .text (.text)
    00001a98  local     copy (.text)
    00001a84  global    memcpy (.text)
    00001ab4  local     return (.text)
    00001a8c  local     start (.text)
    
    
    ================================================================================
    
    rtspruv3_le.lib : boot.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001b44  local     .stack (.stack)
    00000000  local     .text (.text)
    00000000  local     .text:_c_int00 (.text:_c_int00)
    00000000  local     .text:_c_int00_noargs (.text:_c_int00_noargs)
    00000000  local     .text:_c_int00_noinit (.text:_c_int00_noinit)
    00000000  local     .text:_c_int00_noinit_noargs (.text:_c_int00_noinit_noargs)
    00000000  local     __TI__c_int00_specialization (__TI__c_int00_specialization)
    00000000  global    _c_int00 (.text:_c_int00)
    00000000  global    _c_int00 (.text:_c_int00)
    00000000  global    _c_int00_noargs (.text:_c_int00_noargs)
    00000000  global    _c_int00_noinit (.text:_c_int00_noinit)
    00000000  global    _c_int00_noinit_noargs (.text:_c_int00_noinit_noargs)
    00001b44  global    _stack (.stack)
    
    
    ================================================================================
    
    rtspruv3_le.lib : mpyll.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000c88  local     $C$L1 (.text:__pruabi_mpyll)
    00000ca8  local     $C$L2 (.text:__pruabi_mpyll)
    00000d18  local     $C$L3 (.text:__pruabi_mpyll)
    00000d28  local     $C$L4 (.text:__pruabi_mpyll)
    00000d40  local     $C$L5 (.text:__pruabi_mpyll)
    00000d54  local     $C$L6 (.text:__pruabi_mpyll)
    00000000  local     .text (.text)
    00000c34  local     .text:__pruabi_mpyll (.text:__pruabi_mpyll)
    00000c34  global    __pruabi_mpyll (.text:__pruabi_mpyll)
    
    
    ================================================================================
    
    rtspruv3_le.lib : mpyi.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001af4  local     $C$L1 (.text:__pruabi_mpyi)
    00001afc  local     $C$L2 (.text:__pruabi_mpyi)
    00001b08  local     $C$L3 (.text:__pruabi_mpyi)
    00000000  local     .text (.text)
    00001ae8  local     .text:__pruabi_mpyi (.text:__pruabi_mpyi)
    00001ae8  global    __pruabi_mpyi (.text:__pruabi_mpyi)
    
    
    ================================================================================
    
    rtspruv3_le.lib : divu_c.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000e88  local     $C$L1 (.text:__pruabi_divu)
    00000ee4  local     $C$L10 (.text:__pruabi_divu)
    00000ef0  local     $C$L11 (.text:__pruabi_divu)
    00000efc  local     $C$L12 (.text:__pruabi_divu)
    00000f08  local     $C$L13 (.text:__pruabi_divu)
    00000f1c  local     $C$L14 (.text:__pruabi_divu)
    00000f28  local     $C$L15 (.text:__pruabi_divu)
    00000f2c  local     $C$L16 (.text:__pruabi_divu)
    00000f44  local     $C$L17 (.text:__pruabi_divu)
    00000f50  local     $C$L18 (.text:__pruabi_divu)
    00000f58  local     $C$L19 (.text:__pruabi_divu)
    00000e8c  local     $C$L2 (.text:__pruabi_divu)
    00000f68  local     $C$L20 (.text:__pruabi_divu)
    00000f78  local     $C$L21 (.text:__pruabi_divu)
    00000e9c  local     $C$L3 (.text:__pruabi_divu)
    00000ea0  local     $C$L4 (.text:__pruabi_divu)
    00000eac  local     $C$L5 (.text:__pruabi_divu)
    00000eb4  local     $C$L6 (.text:__pruabi_divu)
    00000ec4  local     $C$L7 (.text:__pruabi_divu)
    00000ed0  local     $C$L8 (.text:__pruabi_divu)
    00000ee0  local     $C$L9 (.text:__pruabi_divu)
    00000000  local     .text (.text)
    00000e78  local     .text:__pruabi_divu (.text:__pruabi_divu)
    00000e78  global    __pruabi_divu (.text:__pruabi_divu)
    
    
    ================================================================================
    
    rtspruv3_le.lib : asrll.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001640  local     $C$L1 (.text:__pruabi_asrll)
    00001654  local     $C$L2 (.text:__pruabi_asrll)
    00001670  local     $C$L3 (.text:__pruabi_asrll)
    00000000  local     .text (.text)
    000015f4  local     .text:__pruabi_asrll (.text:__pruabi_asrll)
    000015f4  global    __pruabi_asrll (.text:__pruabi_asrll)
    
    
    ================================================================================
    
    rtspruv3_le.lib : lsrll.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001904  local     $C$L1 (.text:__pruabi_lsrll)
    00001918  local     $C$L2 (.text:__pruabi_lsrll)
    00000000  local     .text (.text)
    000018dc  local     .text:__pruabi_lsrll (.text:__pruabi_lsrll)
    000018dc  global    __pruabi_lsrll (.text:__pruabi_lsrll)
    
    
    ================================================================================
    
    rtspruv3_le.lib : autoinit.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000024  local     $C$L1 (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    00000078  local     $C$L10 (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000064  local     $C$L11 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    00000090  local     $C$L12 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    000000bc  local     $C$L13 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    000000c8  local     $C$L14 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    000000cc  local     $C$L15 (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    0000004c  local     $C$L16 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000078  local     $C$L17 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000094  local     $C$L18 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    000000a0  local     $C$L19 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    0000007c  local     $C$L2 (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    000000a4  local     $C$L20 (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000024  local     $C$L21 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    0000007c  local     $C$L22 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000a8  local     $C$L23 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000d4  local     $C$L24 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000e0  local     $C$L25 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    000000e4  local     $C$L26 (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    00000020  local     $C$L27 (.text:__TI_auto_init:__TI_auto_init)
    00000064  local     $C$L28 (.text:__TI_auto_init:__TI_auto_init)
    00000090  local     $C$L29 (.text:__TI_auto_init:__TI_auto_init)
    000000a8  local     $C$L3 (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    000000ac  local     $C$L30 (.text:__TI_auto_init:__TI_auto_init)
    000000b8  local     $C$L31 (.text:__TI_auto_init:__TI_auto_init)
    000000bc  local     $C$L32 (.text:__TI_auto_init:__TI_auto_init)
    00000020  local     $C$L4 (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000064  local     $C$L5 (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000090  local     $C$L6 (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000064  local     $C$L7 (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    00000090  local     $C$L8 (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    0000004c  local     $C$L9 (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000000  local     .text (.text)
    00000000  local     .text:__TI_auto_init:__TI_auto_init (.text:__TI_auto_init:__TI_auto_init)
    00000000  local     .text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    00000000  local     .text:__TI_auto_init_nobinit:__TI_auto_init_nobinit (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000000  local     .text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    00000000  local     .text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000000  local     .text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    00000000  local     .text:__TI_auto_init_nopinit:__TI_auto_init_nopinit (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000000  local     .text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    00000000  local     __TI___TI_auto_init_specialization (__TI___TI_auto_init_specialization)
    00000000  global    __TI_auto_init (.text:__TI_auto_init:__TI_auto_init)
    00000000  global    __TI_auto_init (.text:__TI_auto_init:__TI_auto_init)
    00000000  global    __TI_auto_init_hold_wdt (.text:__TI_auto_init_hold_wdt:__TI_auto_init_hold_wdt)
    00000000  global    __TI_auto_init_nobinit (.text:__TI_auto_init_nobinit:__TI_auto_init_nobinit)
    00000000  global    __TI_auto_init_nobinit_hold_wdt (.text:__TI_auto_init_nobinit_hold_wdt:__TI_auto_init_nobinit_hold_wdt)
    00000000  global    __TI_auto_init_nobinit_nopinit (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
    00000000  global    __TI_auto_init_nobinit_nopinit_hold_wdt (.text:__TI_auto_init_nobinit_nopinit_hold_wdt:__TI_auto_init_nobinit_nopinit_hold_wdt)
    00000000  global    __TI_auto_init_nopinit (.text:__TI_auto_init_nopinit:__TI_auto_init_nopinit)
    00000000  global    __TI_auto_init_nopinit_hold_wdt (.text:__TI_auto_init_nopinit_hold_wdt:__TI_auto_init_nopinit_hold_wdt)
    
    
    ================================================================================
    
    rtspruv3_le.lib : startup.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000000  local     .text (.text)
    00000000  local     .text:_system_post_cinit (.text:_system_post_cinit)
    00000000  global    _system_post_cinit (.text:_system_post_cinit)
    
    
    ================================================================================
    
    rtspruv3_le.lib : cpy_tbl.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000018  local     $C$L1 (.text:copy_in)
    00000064  local     $C$L2 (.text:copy_in)
    00000070  local     $C$L3 (.text:copy_in)
    00000074  local     $C$L4 (.text:copy_in)
    00000078  local     $C$L5 (.text:copy_in)
    00000000  local     .text (.text)
    00000000  local     .text:copy_in (.text:copy_in)
    00000000  global    copy_in (.text:copy_in)
    
    
    ================================================================================
    
    rtspruv3_le.lib : exit.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001b2c  local     $C$L1 (.text:abort)
    00000034  local     $C$L2 (.text:exit)
    00000048  local     $C$L3 (.text:exit)
    00000000  local     $O1$$ (.fardata:$O1$$)
    00000000  local     .fardata:$O1$$ (.fardata:$O1$$)
    00000000  local     .text (.text)
    00001b28  local     .text:abort (.text:abort)
    00000000  local     .text:exit (.text:exit)
    00001b30  local     .text:loader_exit (.text:loader_exit)
    00001b30  global    C$$EXIT (.text:loader_exit)
    00000000  global    __TI_cleanup_ptr (.fardata:$O1$$)
    00000002  global    __TI_dtors_ptr (.fardata:$O1$$)
    00001b28  local     __TI_exit_specialization (__TI_exit_specialization)
    00001b28  global    abort (.text:abort)
    00000000  global    exit (.text:exit)
    00001b28  global    exit (.text:exit)
    00001b30  local     loader_exit (.text:loader_exit)
    
    
    ================================================================================
    
    rtspruv3_le.lib : _lock.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000000  local     $O1$$ (.fardata:$O1$$)
    00000000  local     .fardata:$O1$$ (.fardata:$O1$$)
    00000000  local     .text (.text)
    00000000  local     .text:_nop (.text:_nop)
    00000000  local     .text:_register_lock (.text:_register_lock)
    00000000  local     .text:_register_unlock (.text:_register_unlock)
    00000000  global    _lock (.fardata:$O1$$)
    00000000  global    _nop (.text:_nop)
    00000000  global    _register_lock (.text:_register_lock)
    00000000  global    _register_unlock (.text:_register_unlock)
    00000002  global    _unlock (.fardata:$O1$$)
    
    
    ================================================================================
    
    rtspruv3_le.lib : args_main.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00000028  local     $C$L1 (.text:_args_main)
    00000038  local     $C$L2 (.text:_args_main)
    00000000  local     .text (.text)
    00000000  local     .text:_args_main (.text:_args_main)
    00000000  global    _args_main (.text:_args_main)
    
    
    ================================================================================
    
    rtspruv3_le.lib : memset.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001b14  local     $C$L1 (.text:memset)
    00001b24  local     $C$L2 (.text:memset)
    00000000  local     .text (.text)
    00001b0c  local     .text:memset (.text:memset)
    00001b0c  global    memset (.text:memset)
    
    
    ================================================================================
    
    rtspruv3_le.lib : asri.c.obj
    
    Run/Load            
    Value     Binding   Name (Section)
    --------  --------  ---------------
    00001ad4  local     $C$L1 (.text:__pruabi_asri)
    00001ae4  local     $C$L2 (.text:__pruabi_asri)
    00000000  local     .text (.text)
    00001ab8  local     .text:__pruabi_asri (.text:__pruabi_asri)
    00001ab8  global    __pruabi_asri (.text:__pruabi_asri)
    
    
    ================================================================================
    
    

  • The only way to have this line appear in the map file ...

    .cinit     1    00000000    00000000     UNINITIALIZED

    ... is to link with --ram_model.  That must be happening.  But how?  The first place I would check is in the linker command file.  Note the option may be spelled with short equivalent -cr.

    Thanks and regards,

    -George

  • Ah! You're right!  In the .cmd file, hidden in the $(ORDERED_OBJS) part of the command I pasted, there was the following line at the beginning:

    /****************************************************************************/
    /*  AM57xx_PRU.cmd                                                          */
    /*  Copyright (c) 2015  Texas Instruments Incorporated                      */
    /*                                                                          */
    /*    Description: This file is a linker command file that can be used for  */
    /*                 linking PRU programs built with the C compiler and       */
    /*                 the resulting .out file on an AM57xx device.             */
    /****************************************************************************/
    
    -cr    /* Link using C conventions */
    
    /* Specify the System Memory Map */
    MEMORY
    {
    [...]
    Removing the -cr has the expected effect in the .cinit. And reverting my fix, compiling without that option looks like it's working as expected. The disassembly looks similar, though. But I don't have the full setup to check with the debugger, but the error I was getting doesn't show up.
    However, that solves one half of the mystery: "Why are statics not initialized?" . The other half is "Why was the same binary working in SDK6 and broken in SDK8?"
    Edit 31/03: the snippet had '-c' instead of '-cr'
  • The disassembly looks similar, though.

    Look for additional functions, like __TI_zero_init_nomemset.  

    "Why was the same binary working in SDK6 and broken in SDK8?"

    I don't know.  I'll notify those SDK experts about this thread.  Please consider this possibility:

    • It is correct to build PRU code with --ram_model
    • Zero initialization of PRU global and static variables should be implemented by some other method from outside the PRU
    • This root of the problem is related to this other method

    Thanks and regards,

    -George

  • Sebastian,

    I would like to reiterate in order to ensure I am understanding.. after making the changes suggested by George,your binary that was working in 6.3 is still not working with SDK 8.2?

    -Josue

  • Hi Josue,

    I guess I didn't explained myself very well. With the changes George suggested it now works in SDK8.2. My linker was building with --ram_model because of the -cr parameter in the .cmd file. Building with --rom_model (removing that from the linker) does fixes the non-init issue, but that doesn't explain why --ram_model isn't working well in SDK8, while it was working in SDK6... something is different in SDK8 and if I understood George correctly, it's not the compiler (likerly the Linux driver or the way the elf is loaded).

    As I said before, we are happy with the explicit initialization fix, but I am curious :-P

  • Sebastian,

    I am glad you have this fixed. As I mentioned before, both PRU drivers in both SDKs have the same initialization of memory to zero

    both prueth.c from SDK 6.3 and prueth_core.c from SDK 8.2 have the same function that initializes all PRU memories to zero

    So this might not be it. There is many changes to this driver so finding this out would not be trivial.

    Due to other priorities, I will closed this thread since you have moved past the issue.

    Best,

    Josue