Is it possible to force a memory object in SRAM_U?

Status
Not open for further replies.

potatotron

Well-known member
I'm going to play with bitbanding to see if it's faster than ANDing and ORing bits in bytes.

Bit banded RAM is only available in the upper block (SRAM_U) -- is there an easy way to force the compiler to allocate an array at a specific RAM address?

In case you're interested in details, I have 64x32 arrays of HSV data I need to convert to temporal frames for APA102s at 60fps. I've optimized the conversion down to about 50 milliseconds but it still needs to be about 4x faster to reach 60fps.
 
I'm going to play with bitbanding to see if it's faster than ANDing and ORing bits in bytes.

Bit banded RAM is only available in the upper block (SRAM_U) -- is there an easy way to force the compiler to allocate an array at a specific RAM address?

In case you're interested in details, I have 64x32 arrays of HSV data I need to convert to temporal frames for APA102s at 60fps. I've optimized the conversion down to about 50 milliseconds but it still needs to be about 4x faster to reach 60fps.
I tried this and it was faster not using bitbanding because the overhead of the code to reach the bitband alias region when doing multiple bits. Maybe there is way to access multiple words of the bitband alias region in single instruction but I don't know how.
 
I tried this and it was faster not using bitbanding because the overhead of the code to reach the bitband alias region when doing multiple bits. Maybe there is way to access multiple words of the bitband alias region in single instruction but I don't know how.

Thanks. How did you force your array into the bitband mapped RAM region?
 
Status
Not open for further replies.
Back
Top