SIMTRACE环境搭建

工具环境搭建。仅作参考,具有时效性,请以官方文档为准。

跨平台编译工具arm-elf

参考链接:https://osmocom.org/projects/baseband/wiki/GnuArmToolchain
新建三个目录
$mkdir build src install

安装依赖
$ sudo apt-get install build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev texinfo flex bison libncurses5 libncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libncursesw5-dev zlibc zlib1g-dev libmpfr4 libmpc-dev

将文件夹中
binutils-2.21.1a.tar.bz2,gcc-4.5.2.tar.bz2,newlib-1.19.0.tar.gz放在src
脚本工具gnu-arm-build.2.sh 放在当前目录,执行 gnu-arm-build.2.sh
$ bash gnu-arm-build.2.sh
目录结构如下:
simtrace1.jpg
报错处理:
先卸载 texinfo
$apt remove texinfo
安装低版本texinfo
dpkg –i texinfo_4.13a.dfsg.1-8ubuntu2_amd64.deb
再运行
$ ./gnu-arm-build.2.sh

编译库文件libosmocore

参考链接

https://osmocom.org/projects/libosmocore/wiki/Libosmocore

安装依赖

$ sudo apt-get install build-essential libtool libtalloc-dev shtool autoconf automake git-core pkg-config make gcc libpcsclite-dev

1
2
3
4
5
6
7
8
$ git clone git://git.osmocom.org/libosmocore.git
$ cd libosmocore/
$ autoreconf -i
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig -i
$ cd ..

安装pc客户端simtrace

参考链接

https://osmocom.org/projects/simtrace/wiki/SIMtrace

下载simtrace源码
$ git clone git://git.osmocom.org/simtrace.git
依赖
$ sudo apt-get install libusb-1.0-0-dev

$ cd simtrace/host
编译
$ make

编译simtrace 固件

参考链接

https://osmocom.org/projects/simtrace/wiki/SIMtrace_Firmware

下载源码及编译

osmocom最新修改的openpcd源码无法正常使用,其头文件中结构体变量声明类型有误,或者是交叉编译工具版本较旧(uint8_t/ u_int8_t 两个定义),使用旧的可编译通过的源码,openpcd.zip
源码修改链接

http://git.osmocom.org/openpcd/commit/?id=373c172ab858102e1818c8476ab1a2b290685cda

在交叉编译工具中的头文件( #include < sys/types.h > )

源代码中最近一次修改是将所有文件中的数据类型u_int8_t、u_int16_t全部修改为uint8_t、uint16_t,但是使用的交叉编译工具(arm-elf-gcc)中的对该数据类型的定义为u_int8_t、u_int16_t。这导致新代码编译出错。

simtrace2.jpg

$ git clone git://git.osmocom.org/openpcd.git
$ cd openpcd/firmware
设置环境变量(arm-elf-gcc所在目录)
$ export PATH=$PATH:/home/mtq/simtrace/arm-elf-toolchain/install/bin
$ make -f Makefile.dfu BOARD=SIMTRACE
$ make BOARD=SIMTRACE DEBUG=1 TARGET=main_simtrace
$ cat dfu.bin main_simtrace.bin > main_simtrace.samba
$ cd ../..
其中生成的文件


dfu.bin – the sam7dfu 2nd level bootloader. It implements the USB DFU (Device Firmware Upgrade) profile.
main_simtrace.bin – the actual simtrace program. To be loaded via DFU, using dfu-util.
main_simtrace.samba – sam7dfu + simtrace image. to be loaded via SAM-BA, using sam7utils (see below).


两种给板子刷固件的方法

DFU模式

该模式是在固件可用下,需要升级固件时使用
安装工具
$ sudo apt-get install dfu-util
刷固件
$ sudo dfu-util -d 16c0:0762 -a0 -D ./main_simtrace.bin –R

SAM-BA

该模式用于板子固件丢失,需要重新刷入底层固件
$ wget http://www.openpcd.org/dl/sam7utils-0.2.1-bm.tar.bz2
(该链接已经失效)
$ tar xf sam7utils-*.tar.bz2
$ cd sam7utils
$ ./configure --prefix=/usr/local
$ make AM_CFLAGS=""
编译生成工具
将板子进入SAM-BA模式
simtrace3.jpg