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.

Bare metal Beagle bone black PRU linking problem

I have a program which has been working successfully  using the bare metal starterware for the beaglebone black ARM and PRUs. It is originally based on the  PRU cape demo from TI.

Today I upgraded to ccsv6.1.1, PRU TI v 214, ARM TI v5.2.8 and the linking no longer works for the ARM code (the PRU code appears to compile and link and run the hex utility successfully).  I am using windows7 Pro.

Here is a summary of what is happening:

I produce an obj file for the PRU code successfully,  finishing up with the hex utility:

'Invoking: PRU Hex Utility'
"C:/ti/ccsv6/tools/compiler/ti-cgt-pru_2.1.4/bin/hexpru" --ti_txt -o "bbsPRU_HC_image.obj"  "bbsPRU_HC.out"
Translating to TI-TXT format...
   "bbsPRU_HC.out" .text:_c_int00* ==> .text:_c_int00*
   "bbsPRU_HC.out" .text ==> .text
'Finished building: bbsPRU_HC_image.obj'

In the ARM bbsPRUDemo.cmd. file in SECTIONS I have the following:

    HC_text: {bbsPRU_HC_image.obj(.text)} load > DDR_MEM run_start(HC_INST)
    HC_data: {bbsPRU_HC_image.obj(.data)} load > DDR_MEM run_start(HC_DATA)

 

The ARM compiler C:/ti/ccsv6/tools/compiler/arm_5.2.8/bin/armcl attempts to link with bbsPRU_HC_image.obj but has the following error:

<Linking>
"C:/AxMDevel/axm7Elements/6.1R/CCS_workspace_v6_0_bbb/bbsPRU_HC/Debug/bbsPRU_HC_image.obj", line 1: error #10045-D: illegal input character:  "@"
@0000

"../bbsPRUDemo.cmd", line 103: error #10008-D: cannot find file "bbsPRU_HC_image.obj"
    HC_text: {bbsPRU_HC_image.obj(.text)} load > DDR_MEM run_start(HC_INST)
"../bbsPRUDemo.cmd", line 104: error #10008-D: cannot find file "bbsPRU_HC_image.obj"
     HC_data: {bbsPRU_HC_image.obj(.data)} load > DDR_MEM run_start(HC_DATA)

 

I have not changed the paths so am not sure why the obj file cannot be found.

In the bbsPRUDemo.cmd file the above lines are annotated with the following errors:

Multiple markers at this line
- #10068-D no matching section
- #10008-D cannot find file "bbsPRU_LED0_image.obj"

 

I would welcome any suggestions about what is causing these errors.

 

I have tried going back to the previous version but even that now produces the same errors.

 

Thanks,

Bryan

 

 

 

 

  • I have solved what turns out to be a simple error.

    The ccsv6 settings for the project were not updated so that the PRU_HexUtil.cmd was missing from the PRU Hex invocation.  It should have been:

    "C:/ti/ccsv6/tools/compiler/ti-cgt-pru_2.1.4/bin/hexpru" --ti_txt -o "bbsPRU_HC_image.obj"  "bbsPRU_HC.out"  PRU_HexUtil.cmd

    where PRU_HexUtil.cmd is:

    --host_image

    --image

    --host_image:target=ARM

    --host_image:endianness=little

    --host_image:hidden_symbols

    ROMS {

                  PAGE 0:

                  .text: o = 0x0, l = 0x1000

                  PAGE 1:

                  .data: o = 0x0, l = 0x1000

    }

    which sets the target to be ARM and so produces an ELF file.