Use TouchGFX
This commit is contained in:
@ -0,0 +1,50 @@
|
||||
#!env ruby
|
||||
# Copyright (c) 2018(-2023) STMicroelectronics.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is part of the TouchGFX 4.21.2 distribution.
|
||||
#
|
||||
# This software is licensed under terms that can be found in the LICENSE file in
|
||||
# the root directory of this software component.
|
||||
# If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
#
|
||||
###############################################################################/
|
||||
require 'fileutils'
|
||||
|
||||
###### SETUP ###############
|
||||
input = ARGV[0]
|
||||
output = ARGV[1]
|
||||
bins = Dir[input + "/bin/*.bin"]
|
||||
FileUtils.mkdir_p("#{output}/obj") #Create obj folder
|
||||
symbol_file_name = "#{output}/obj/rename_symbols.txt"
|
||||
###############################################
|
||||
|
||||
############### Process files ########################
|
||||
bins.each do |bin|
|
||||
bin_file_name = File.basename(bin)
|
||||
|
||||
puts "Generating elf32 object from binary file #{input}/bin/#{bin_file_name}..."
|
||||
`arm-none-eabi-objcopy.exe -B arm --rename-section .data=ExtFlashSection,contents,alloc,load,readonly,data -I binary -O elf32-littlearm #{input}/bin/#{bin_file_name} #{output}/obj/#{bin_file_name}.o`
|
||||
|
||||
#Rename the symbols
|
||||
output_folder_name_subst = "#{output+'/bin'}".gsub('.', '_').gsub('/', '_')
|
||||
bin_file_name_subst = File.basename(bin).gsub('.', '_').gsub('/', '_')
|
||||
str = output_folder_name_subst + "_" + bin_file_name_subst
|
||||
|
||||
content =
|
||||
"_binary_#{str}_start video_#{bin_file_name_subst}_start\n" +
|
||||
"_binary_#{str}_end video_#{bin_file_name_subst}_end\n" +
|
||||
"_binary_#{str}_size video_#{bin_file_name_subst}_size\n"
|
||||
|
||||
puts "Renaming symbols..."
|
||||
FileUtils.mkdir_p(File.dirname(symbol_file_name))
|
||||
unless File.exist?(symbol_file_name) && content == File.open(symbol_file_name, 'r') { |f| f.read() }
|
||||
File.open(symbol_file_name, 'w') { |f| f.write(content) }
|
||||
end
|
||||
|
||||
# Bulk rename using objcopy --redefine-syms
|
||||
`arm-none-eabi-objcopy.exe --redefine-syms #{output}/obj/rename_symbols.txt #{output}/obj/#{bin_file_name}.o`
|
||||
end
|
||||
|
||||
#Remove temp file
|
||||
FileUtils.rm(symbol_file_name)
|
||||
Reference in New Issue
Block a user