rt-thread-official/bsp/nuvoton/numaker-iot-ma35d1/preload/transcode.py

42 lines
1.2 KiB
Python

# -*- coding: UTF-8 -*-
import os
def extract_line(fname, pattern):
with open(fname, "r") as f:
lines = f.readlines()
f.close()
with open("entry_point.S", "w") as f:
counter=0
f.write(".section \".text.entrypoint\"\n")
f.write(".globl system_vectors\n")
f.write("\n")
f.write("ma35d1_start:\n")
for line in lines:
if pattern in line:
new_line = " .word 0x" + line[6:14] + "\n"
f.write(new_line)
counter = counter+1
f.write("\n")
f.write(".L__aarch32_code:\n")
f.write("\n")
# Append NOP to align vector table.
counter = (counter+5)*4
counter_align = (counter+32-1) & ~(32-1)
nop_num = (counter_align - counter) / 4
print hex(counter), hex(counter_align), nop_num
j = 0
while j < nop_num:
f.write(" nop\n")
j += 1
f.write(" ldr r0, =ma35d1_start\n")
f.write(" mov sp, r0\n")
f.write(" ldr pc, =system_vectors\n")
f.close()
def formatfiles():
extract_line("preload.txt", ":\t")
if __name__ == '__main__':
formatfiles()