Showing changes from revision #1 to #2:
Added | Removed | Changed
The OS is able to provide the HAL with two areas of workspace:
The HAL is not able to claim extra memory at runtime, so the workspace size must be chosen appropriately.
When the OS calls HAL_Init, the sb register will contain the pointer to the HAL’s static workspace.
The workspace will have been zero-initialised by the OS, and will be the of the size indicated in word 5 of the HAL descriptor
The static workspace will be marked as cacheable & bufferable, is only guaranteed to be 4 byte aligned, and is not guaranteed to occupy physically contiguous pages of RAM.
This workspace is optional. If the HAL requires it, it must request it by setting bit 0 of the flags word in the HAL descriptor
When the OS calls HAL_Init, the uncacheable_ws parameter will contain a pointer to the uncacheable workspace.
The uncacheable workspace has a fixed size of 32KB, and will be marked as non-cacheable & non-bufferable. It’s guaranteed to be at least 4KB aligned, and to occupy physically contiguous pages of RAM.