AnsweredAssumed Answered

FLEXBUS_DRV functionality to setup up multiple flexbus regions

Question asked by Larry York on Sep 11, 2015
Latest reply on Oct 8, 2015 by jeremyzhou

Maybe I'm missing it somewhere, but there doesn't seem to be a clean way to set up multiple regions of the flexbus using the flexbus driver directly. Setting up the first region is simple enough using FLEXBUS_DRV_Init() but you can't call it a second time to set up another region because it calls FLEXBUS_HAL_Init() which clears out all of the flexbus registers, thus clobbering the settings for the first region. I know I can access the appropriate registers directly, or call FLEXBUS_HAL_Configure(), but isn't the point of the abstraction layers and ultimately the driver to make it so the user doesn't have to have intimate knowledge of the lower layers?

 

My suggestion would be that FLEXBUS_DRV_Init() does what it does now, minus the call to FLEXBUS_HAL_Configure(). A new function should be added, something like FLEXBUS_DRV_AddRegion( const flexbus_user_config_t* userConfigPtr ) that allows you to set up different parameters for different chip selects without having to muck with registers directly or having to reference g_fbBase[] for the sake of having a pointer to pass to FLEXBUS_HAL_Configure().

 

Anyone else run into this, or am I missing something?

Outcomes