#define SERIAL Serial
const byte ONBOARD_LED = 25;
const volatile uint32_t* GPIO0_CTRL = (uint32_t*)(0x40014004);
const volatile uint32_t* GPIO8_CTRL = (uint32_t*)(0x40014044);
volatile uint32_t* const GPIO25_CTRL = (uint32_t*)(0x400140CC);
volatile uint32_t* const REG_GPIO_OUT = (uint32_t*)(0xd0000010);
volatile uint32_t* const REG_GPIO_OUT_SET = (uint32_t*)(0xd0000014);
volatile uint32_t* const REG_GPIO_OUT_CLR = (uint32_t*)(0xd0000018);
volatile uint32_t* const REG_GPIO_OUT_XOR = (uint32_t*)(0xd000001C);
volatile uint32_t* const PAD_GPIO25 = (uint32_t*)(0x4001c068);
//#define MEM32(address) (*(volatile uin32_t*)(address))
void setup() {
SERIAL.begin(115200);
SERIAL.println("Starting .... ");
//pinMode(ONBOARD_LED, OUTPUT);
//for (int i=8; i<16; i++ ) {
// pinMode(i, OUTPUT);
//}
printf( "GPIO25_CTRL %02X\n", *GPIO25_CTRL);
printf( "PAD_GPIO25 %02X\n", *PAD_GPIO25);
*GPIO25_CTRL = 0x05;
*PAD_GPIO25 = 0x72;
printf( "GPIO25_CTRL %02X\n", *GPIO25_CTRL);
printf( "PAD_GPIO25 %02X\n", *PAD_GPIO25);
pinMode (ONBOARD_LED, OUTPUT);
printf( "PAD_GPIO25 %02X\n", *PAD_GPIO25);
}
static int sum = 0;
void loop() {
for ( int i=0; i< 5000000; i++) {
sum+= sum * sum + 1;
}
auto bt = bit(25);
*REG_GPIO_OUT_XOR = bt;
SERIAL.println(sum);
}