SystemRDL/PeakRDL-cheader

Problem with using multiple cheaders which share imported regfiles

AlexLao512 opened this issue · 0 comments

We are running into a problem that is exposed when we export a bunch of headers for bus slaves that all have a common regfile. If we export an entire bus structures register map as a single header, it is not a problem because the common regfile struct has a _<random_string> tacked on as a post-fix.

Essentially what we have is a bunch of registers that's are the same for every one of our custom bus slaves. These are for slave identification at runtime, cross-checking version codes for SW/HW API compatibility, etc.

We import this regfile from a different .rdl file and instance the regfile at address 0 of every bus slave.

The problem occurs when I export individual headers for each bus slave. I cannot include several of these headers in a single C project due to the name collision of the identical structs generated for each slave in each header.

I don't know a good way of fixing this. Maybe we can have a command line argument for generating all included regfiles as a seperate .h file?