OK, I see they extended the C language for R30 and R31!

I haven't found any good examples were C and assembler are mixed.  I have 
seen statements which say there are multiple ways to accomplish it.
It looks like the simplest is to inject assembler code directly into the C 
code.  See page 76.  There is also a section on "Intrinsics" on page 89.  I 
think that might be what you are looking for.

On Tuesday, February 9, 2016 at 7:56:44 AM UTC-5, lucas wrote:
>
> Ah, thank you. These are excellent resources. I think I found the answer 
> to my first question in the PRU Optimizing C/C++ Compiler v2.1 User Guide:
>
> Section: 5.7.2 Global Register Variables
>
> The C/C++ compiler extends the C language by adding a special convention 
>> to the register storage class specifier to allow the allocation of global 
>> registers. This special global declaration has the form: register type 
>> regid The regid parameter can be __R30 and __R31. The identifiers _ _R30 
>> and _ _R31 are each bound to their corresponding register R30 and R31, 
>> respectively. These are control registers and should always be declared as 
>> volatile. 
>
>
> I am still a bit uncertain about the scratch pad. I have a value stored in 
> a C variable, but how could I copy that value into inline assembler - so 
> that I can write it to the scratch pad?
>
>
>
> On Tuesday, February 9, 2016 at 1:37:14 PM UTC+1, Soapy Smith wrote:
>>
>> There is a manual for the C compiler and the assembler:
>>
>> http://processors.wiki.ti.com/index.php/PRU-ICSS
>>
>> The links are on the right side of the page.
>>
>> Some of the PRU hardware specific registers are accessed via a large 
>> union in a header file.  It uses structs with "bit fields" so you can 
>> easily access individual bits in the register.
>> Look for a header file called pru_cfg.h.  But specifically to your 
>> question, I'm still trying to figure out how the PRU input and output 
>> registers R30 and R31 are done in C, as I
>> don't see those called out in the header file (in information overload at 
>> this point!).
>>
>> Regarding the scratchpad, I believe it can't be accessed via C.  However, 
>> you can embed assembler codes into C source code.
>> If you go here:
>>
>>
>> https://training.ti.com/sitara-processors-building-blocks-for-pru-development-summary
>>
>> Download the firmware development slides and look at page 8.
>>
>> Regards,
>> Greg
>>
>>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to