fc2ブログ

[LM32]ビルドバッチ

内容は以下。

1.micosystem.exeでBuild allした時のコピー(sw.elfが生成される)
2.micosystem.exeでSoftware Deploymentlした時のコピー(命令RAMとデータRAMの.memが生成される)
3.srec生成
4.elfをobjdump
5.memからmifへ変換(自作rubyプログラム)
6.rubyだと16進数のアドレスの0埋めが出来ずに空白埋めになるので、0へ変換
7.mifをシミュレーションフォルダへコピー


#!/bin/bash

\rm sw.elf
\rm *.mif
\rm *.srec
\rm *.bin.*
\rm *.objdump.txt
\rm *.o
\rm *.d

src_name=LEDTest

#GCC_OPT="-D__RELOCATE_EXCEPTION_TABLE__"
GCC_OPT=""

LM32ELFBIN=/cygdrive/c/lscc/diamond/3.12/micosystem/gtools/lm32/lm32-elf/bin
LM32BIN=/cygdrive/c/lscc/diamond/3.12/micosystem/gtools/lm32/bin
PJ_DIR=/cygdrive/c/hoge/DE2-115/micosystem/mico32/soc
LATTICE_UTIL_DIR=/cygdrive/c/lscc/diamond/3.12/micosystem/utilities
RUBYBIN="/cygdrive/c/hoge/ruby"

echo "INFO : build ------------------------------------------------------------------------";
cd ../mico32/Debug

$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../DDInit.c -o ../../Debug/Debug/DDInit.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../DDInit.c >> ../../Debug/Debug/DDInit.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../DDStructs.c -o ../../Debug/Debug/DDStructs.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../DDStructs.c >> ../../Debug/Debug/DDStructs.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../LCD.c -o ../../Debug/Debug/LCD.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../LCD.c >> ../../Debug/Debug/LCD.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../LatticeMico32.c -o ../../Debug/Debug/LatticeMico32.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../LatticeMico32.c >> ../../Debug/Debug/LatticeMico32.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../LatticeMico32DbgModule.S -o ../../Debug/Debug/LatticeMico32DbgModule.o
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../LatticeMico32Uart.c -o ../../Debug/Debug/LatticeMico32Uart.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../LatticeMico32Uart.c >> ../../Debug/Debug/LatticeMico32Uart.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../LatticeMicoUtils.S -o ../../Debug/Debug/LatticeMicoUtils.o
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../LookupServices.c -o ../../Debug/Debug/LookupServices.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../LookupServices.c >> ../../Debug/Debug/LookupServices.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoExit.S -o ../../Debug/Debug/MicoExit.o
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileClose.c -o ../../Debug/Debug/MicoFileClose.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileClose.c >> ../../Debug/Debug/MicoFileClose.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileDevices.c -o ../../Debug/Debug/MicoFileDevices.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileDevices.c >> ../../Debug/Debug/MicoFileDevices.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileIsAtty.c -o ../../Debug/Debug/MicoFileIsAtty.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileIsAtty.c >> ../../Debug/Debug/MicoFileIsAtty.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileOpen.c -o ../../Debug/Debug/MicoFileOpen.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileOpen.c >> ../../Debug/Debug/MicoFileOpen.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileRead.c -o ../../Debug/Debug/MicoFileRead.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileRead.c >> ../../Debug/Debug/MicoFileRead.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileSeek.c -o ../../Debug/Debug/MicoFileSeek.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileSeek.c >> ../../Debug/Debug/MicoFileSeek.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileStat.c -o ../../Debug/Debug/MicoFileStat.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileStat.c >> ../../Debug/Debug/MicoFileStat.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoFileWrite.c -o ../../Debug/Debug/MicoFileWrite.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoFileWrite.c >> ../../Debug/Debug/MicoFileWrite.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoGPIO.c -o ../../Debug/Debug/MicoGPIO.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoGPIO.c >> ../../Debug/Debug/MicoGPIO.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoGPIOService.c -o ../../Debug/Debug/MicoGPIOService.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoGPIOService.c >> ../../Debug/Debug/MicoGPIOService.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoInterrupts.c -o ../../Debug/Debug/MicoInterrupts.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoInterrupts.c >> ../../Debug/Debug/MicoInterrupts.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoSbrk.c -o ../../Debug/Debug/MicoSbrk.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoSbrk.c >> ../../Debug/Debug/MicoSbrk.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoSleepHelper.S -o ../../Debug/Debug/MicoSleepHelper.o
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoStdStreams.c -o ../../Debug/Debug/MicoStdStreams.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoStdStreams.c >> ../../Debug/Debug/MicoStdStreams.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoUart.c -o ../../Debug/Debug/MicoUart.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoUart.c >> ../../Debug/Debug/MicoUart.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoUartService.c -o ../../Debug/Debug/MicoUartService.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoUartService.c >> ../../Debug/Debug/MicoUartService.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../MicoUtils.c -o ../../Debug/Debug/MicoUtils.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../MicoUtils.c >> ../../Debug/Debug/MicoUtils.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. ../printf_shrink.c -o ../../Debug/Debug/printf_shrink.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I. -MM -MG -P -w ../printf_shrink.c >> ../../Debug/Debug/printf_shrink.d

cd ../../Debug

rm -f Debug/../LEDTest.o
rm -f Debug/../lm32_func.o
rm -f Debug/crt0ram.o

touch force_clean_archive_objs

$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled $GCC_OPT -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I./../mico32 ../LEDTest.c -o Debug/../LEDTest.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled $GCC_OPT -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I./../mico32 -MM -MG -P -w ../LEDTest.c >> Debug/../LEDTest.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled $GCC_OPT -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I./../mico32 ../lm32_func.c -o Debug/../lm32_func.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled $GCC_OPT -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I./../mico32 -MM -MG -P -w ../lm32_func.c >> Debug/../lm32_func.d
$LM32BIN/lm32-elf-gcc -c -mbarrel-shift-enabled $GCC_OPT -ffunction-sections -O0 -g2 -Wall -D__lm32__ -I./../mico32 ./../mico32/crt0ram.S -o Debug/crt0ram.o
$LM32BIN/lm32-elf-gcc -mbarrel-shift-enabled -T ../mico32/Debug/linker.ld -osw.elf Debug/../LEDTest.o Debug/../lm32_func.o Debug/crt0ram.o ./Debug/libmico32.a -lm -lsmallc -lgcc ./Debug/libmico32.a -lnosys -Wl,--gc-sections
$LM32BIN/lm32-elf-size sw.elf



echo "INFO : objcopy elf to bin (boot, text) ----------------------------------"; $LM32BIN/lm32-elf-objcopy -j .boot -j .text -O binary $PJ_DIR/sw/Debug/sw.elf $PJ_DIR/sw/Debug/Application.bin.boot_text
echo "INFO : objcopy bin to mem (boot, text) ----------------------------------"; $LATTICE_UTIL_DIR/bin_to_verilog --h --EB --width 4 $PJ_DIR/sw/Debug/Application.bin.boot_text $PJ_DIR/sw/Debug/hoge_Instruction_IM.mem
echo "INFO : objcopy elf to bin (rodata, bss) ----------------------------------"; $LM32BIN/lm32-elf-objcopy -j .rodata -j .bss -O binary $PJ_DIR/sw/Debug/sw.elf $PJ_DIR/sw/Debug/Application.bin.rodata_bss
echo "INFO : objcopy bin to mem (rodata, bss) ----------------------------------"; $LATTICE_UTIL_DIR/bin_to_verilog --h --EB --width 4 $PJ_DIR/sw/Debug/Application.bin.rodata_bss $PJ_DIR/sw/Debug/hoge_Data_IM.mem


echo "INFO : convert Debug/sw.elf to $src_name.srec ----------------------------"; $LM32BIN/lm32-elf-objcopy -O srec sw.elf $src_name.srec
echo "INFO : objdump sw.elf -----------------------------------------"; $LM32ELFBIN/objdump.exe -d sw.elf > sw.elf.objdump.txt

\rm data_ram_data.mif
\rm inst_ram_data.mif

#echo "INFO : convert mem to mif (inst) --------------------"; ruby $RUBYBIN/mem2mif_v01.rb hoge_Instruction_IM.mem inst_ram_data.mif
echo "INFO : convert mem to mif (inst) --------------------"; ruby mem2mif_v01.rb hoge_Instruction_IM.mem inst_ram_data.mif
#echo "INFO : convert mem to mif (data) --------------------"; ruby $RUBYBIN/mem2mif_v01.rb hoge_Data_IM.mem data_ram_data.mif
echo "INFO : convert mem to mif (data) --------------------"; ruby mem2mif_v01.rb hoge_Data_IM.mem data_ram_data.mif

echo "INFO : padding 000 (inst) ---------------------------"; sed -i 's/ /000/g' inst_ram_data.mif
echo "INFO : padding 000 (data) ---------------------------"; sed -i 's/ /000/g' data_ram_data.mif

echo "INFO : padding 00 (inst) ---------------------------"; sed -i 's/ /00/g' inst_ram_data.mif
echo "INFO : padding 00 (data) ---------------------------"; sed -i 's/ /00/g' data_ram_data.mif

echo "INFO : padding 0 (inst) ---------------------------"; sed -i 's/00 /000/g' inst_ram_data.mif
echo "INFO : padding 0 (data) ---------------------------"; sed -i 's/00 /000/g' data_ram_data.mif

echo "INFO : cp inst_ram_data.mif ../../ ------------------"; \cp inst_ram_data.mif ../../
echo "INFO : cp data_ram_data.mif ../../ ------------------"; \cp data_ram_data.mif ../../


スポンサーサイト



カレンダー
05 | 2022/06 | 07
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード