Code: Select all
// safe write to peripheral
void bcm2835_peri_write(volatile uint32_t* paddr, uint32_t value)
{
if (debug)
{
printf("bcm2835_peri_write paddr %08X, value %08X\n", paddr, value);
}
else
{
// Make sure we dont rely on the first write, which may get
// lost if the previous access was to a different peripheral.
*paddr = value;
*paddr = value;
}
}Different peripheral would have a different padder or memory mapped address. For a given a padder there's only a unique peripheral it's addressing.
// safe read from peripheral
Code: Select all
uint32_t bcm2835_peri_read(volatile uint32_t* paddr)
{
if (debug)
{
printf("bcm2835_peri_read paddr %08X\n", paddr);
return 0;
}
else
{
// Make sure we dont return the _last_ read which might get lost
// if subsequent code changes to a differnt peripheral
uint32_t ret = *paddr;
uint32_t dummy = *paddr;
return ret;
}
}