from idautils import *
from idc import *
from idaapi import *
SegRename(0x08000000,"ROM");
SegAlign(0x08000000,saRelByte);
SegCreate(0x20000000, 0x20004FFF, 0x20000000, 1, saRelByte, scPub);
SegRename(0x20000000,"RAM");
SegCreate(0x40000000, 0x400233FF, 0x40000000, 1, saRelDble, scPub);
SegRename(0x40000000,"SFR");
SegCreate(0xE0000000, 0xE0100000, 0xE0000000, 1,saRelDble, scPub);
SegRename(0xE0000000,"CORE_PER");
for ea in range(0x08000000,0x080000BF,1):
MakeUnkn(ea,1)
for ea in range(0x08000000,0x080000BF,4):
MakeDword(ea)
per_table=[0x40020000,"GPIOA_MODER",
0x40020400,"GPIOB_MODER",
0x40020800,"GPIOC_MODER",
0x40020C00,"GPIOD_MODER"]
for i in range(0,len(per_table),2):
MakeName(per_table[i],per_table[i+1])
print i
MakeRptCmt(per_table[i],per_table[i+1])