mirror of
https://github.com/drasko/codezero.git
synced 2026-01-12 02:43:15 +01:00
Remove the ksym_to_lds.py script as the code is embedded in the SCons file.
This commit is contained in:
@@ -1,63 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
import os
|
||||
import sys
|
||||
from string import atoi
|
||||
from os import popen2
|
||||
from os.path import join
|
||||
|
||||
symbols = ['break_virtual']
|
||||
builddir = "build"
|
||||
loaderdir = "loader"
|
||||
image = "start.axf"
|
||||
imgpath = join(builddir, image)
|
||||
asmfile = join(loaderdir, image) + ".S"
|
||||
symfile = "ksyms"
|
||||
asmheader = \
|
||||
'''
|
||||
/*
|
||||
* %s autogenerated from %s
|
||||
*
|
||||
* This file is included by the loader sources so that any
|
||||
* kernel symbol address can be known in advance and stopped
|
||||
* at by debuggers before virtual memory is enabled.
|
||||
*/
|
||||
'''
|
||||
|
||||
asmcontent = \
|
||||
'''
|
||||
|
||||
.section .text
|
||||
.align 4
|
||||
.global %s;
|
||||
.type %s, function;
|
||||
.equ %s, %s
|
||||
|
||||
'''
|
||||
def virt_to_phys(addr):
|
||||
return hex(int(addr, 16) - 0xF0000000)[:-1]
|
||||
|
||||
def ksym_to_lds():
|
||||
asm = open(asmfile, "w+")
|
||||
asm.write(asmheader % (asmfile, imgpath))
|
||||
cmd = "arm-none-eabi-objdump -d " + imgpath + " | grep " + "\\<" + symbols[0] + "\\>" + " > " + symfile
|
||||
os.system(cmd)
|
||||
kf = open(symfile, "r")
|
||||
#child_out, child_in = popen2(cmd)
|
||||
while True:
|
||||
line = kf.readline()
|
||||
if len(line) is 0:
|
||||
break
|
||||
addr, sym = line.split()
|
||||
sym = sym[1:-2]
|
||||
addr = "0x" + addr
|
||||
addr = virt_to_phys(addr)
|
||||
if sym in symbols:
|
||||
print "Adding " + sym + " from " + imgpath + " to " + asmfile + " in physical"
|
||||
asm.write(asmcontent % (sym, sym, sym, addr))
|
||||
asm.close()
|
||||
kf.close()
|
||||
cmd = "rm -rf " + symfile
|
||||
os.system(cmd)
|
||||
if __name__ == "__main__":
|
||||
ksym_to_lds()
|
||||
|
||||
Reference in New Issue
Block a user