recently I tried to flash my STM32F302CCT7 with a ST-link, openOCD, and gdb for arm. I am using the rust toolchain which requires that the ROM and RAM locations to be specified in a memory.x file when targeting ARM. Initially I specified the ROM location as 0x0000 0000 which did not work. I then used 0x0800 0000 which did work. I am wondering why 0x0000 0000 did not work. 
The datasheet says that "the flash memory contents can be accessed starting from address 0x0000 0000 or 0x0800 0000". Is this only valid for reading from the memory and not writing to? Also I am booting from Main Flash memory.