Mbed TLS程序开发指南

来自SylixOS-wiki
(版本间的差异)
跳转至: 导航, 搜索
(增加环境变量)
 
(未显示1个用户的9个中间版本)
第1行: 第1行:
 +
==下载 mbedtls ==
  
 +
:在 linux 环境或 MinGW 下操作。
 +
:*1. 进入 sylixos 工作空间:
 +
cd /home/user/sylixos_workspace
 +
 +
:*2. 下载 mbedtls
 +
:mbedtls 的主页为 http://mbed.org/technology/mbed-tls/
 +
 +
:*3. 解压 mbedtls
 +
tar zxvf mbedtls-1.3.10-gpl.tgz
 +
 +
:*4. 修改 mbedtls 目录名,避免版本升级带来不必要的麻烦:
 +
mv mbedtls-1.3.10 mbedtls
 +
 +
:*5. 进入 mbedtls 目录:
 +
cd mbedtls
 +
 +
==增加环境变量==
 +
 +
:*1. 设置编译器环境变量:
 +
::'''开源版 ARM 工具链环境变量'''
 
  export CC=arm-none-eabi-gcc
 
  export CC=arm-none-eabi-gcc
 
  export AR=arm-none-eabi-ar
 
  export AR=arm-none-eabi-ar
  
 +
::'''商业版 ARM 工具链环境变量'''
 +
export CC=arm-sylixos-eabi-gcc
 +
export AR=arm-sylixos-eabi-ar
 +
 +
:*2. 设置 SylixOS Base 工程路径环境变量(编译好的 SylixOS Base 工程路径根据实际情况设置):
 
  export SYLIXOS_BASE_PATH=/home/user/sylixos_workspace/sylixos-base
 
  export SYLIXOS_BASE_PATH=/home/user/sylixos_workspace/sylixos-base
  
  export CFLAGS="-mcpu=arm920t -fPIC -DSYLIXOS \
+
:*3. 设置链接与编译标志环境变量
-DSYLIXOS_LIB -fsigned-char -fno-short-enums  -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include \
+
  export CFLAGS="-mcpu=arm920t -fPIC -DSYLIXOS -DSYLIXOS_LIB -fsigned-char -fno-short-enums  -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include \
 
  -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include/inet -I$SYLIXOS_BASE_PATH/libcextern/libcextern/include"  
 
  -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include/inet -I$SYLIXOS_BASE_PATH/libcextern/libcextern/include"  
 +
export LDFLAGS="-mcpu=arm920t -fPIC -shared -L$SYLIXOS_BASE_PATH/libsylixos/Debug -L$SYLIXOS_BASE_PATH/libcextern/Debug -nostdlib -lcextern -lvpmpdm -lm -lgcc"
 +
export SYS_LDFLAGS=$LDFLAGS
 +
export SHARED=1
  
export LDFLAGS="-mcpu=arm920t -fPIC -shared -L$SYLIXOS_BASE_PATH/libsylixos/Debug -L$SYLIXOS_BASE_PATH/libcextern/Debug -lcextern -lvpmpdm -lm -lgcc"
+
==修改 Makefile==
 +
:由于 library 目录下的 Makefile 有 BUG,导致生成的动态库不能用,需要修改 library/Makefile 文件:
  
  export SYS_LDFLAGS=$LDFLAGS
+
  libmbedtls.${DLEXT}: $(OBJS)
 +
echo "  LD    $@"
 +
$(CC) -shared -Wl,-soname,$(SONAME) -o $@ $(OBJS) ${LDFLAGS} (将 ${LDFLAGS} 放到最后)
 +
 +
libmbedtls.dylib: $(OBJS)
 +
echo "  LD    $@"
 +
$(CC) -dynamiclib -o $@ $(OBJS) ${LDFLAGS} (将 ${LDFLAGS} 放到最后)
 +
 
 +
==编译和安装 mbedtls==
 +
make
 +
sudo make install

2015年5月19日 (二) 10:15的最后版本

目录

[编辑] 下载 mbedtls

在 linux 环境或 MinGW 下操作。
  • 1. 进入 sylixos 工作空间:
cd /home/user/sylixos_workspace
  • 2. 下载 mbedtls
mbedtls 的主页为 http://mbed.org/technology/mbed-tls/
  • 3. 解压 mbedtls
tar zxvf mbedtls-1.3.10-gpl.tgz
  • 4. 修改 mbedtls 目录名,避免版本升级带来不必要的麻烦:
mv mbedtls-1.3.10 mbedtls
  • 5. 进入 mbedtls 目录:
cd mbedtls

[编辑] 增加环境变量

  • 1. 设置编译器环境变量:
开源版 ARM 工具链环境变量
export CC=arm-none-eabi-gcc
export AR=arm-none-eabi-ar
商业版 ARM 工具链环境变量
export CC=arm-sylixos-eabi-gcc
export AR=arm-sylixos-eabi-ar
  • 2. 设置 SylixOS Base 工程路径环境变量(编译好的 SylixOS Base 工程路径根据实际情况设置):
export SYLIXOS_BASE_PATH=/home/user/sylixos_workspace/sylixos-base
  • 3. 设置链接与编译标志环境变量
export CFLAGS="-mcpu=arm920t -fPIC -DSYLIXOS -DSYLIXOS_LIB -fsigned-char -fno-short-enums  -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include \
-I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include/inet -I$SYLIXOS_BASE_PATH/libcextern/libcextern/include" 
export LDFLAGS="-mcpu=arm920t -fPIC -shared -L$SYLIXOS_BASE_PATH/libsylixos/Debug -L$SYLIXOS_BASE_PATH/libcextern/Debug -nostdlib -lcextern -lvpmpdm -lm -lgcc"
export SYS_LDFLAGS=$LDFLAGS
export SHARED=1

[编辑] 修改 Makefile

由于 library 目录下的 Makefile 有 BUG,导致生成的动态库不能用,需要修改 library/Makefile 文件:
libmbedtls.${DLEXT}: $(OBJS)
	echo "  LD    $@"
	$(CC) -shared -Wl,-soname,$(SONAME) -o $@ $(OBJS) ${LDFLAGS} (将 ${LDFLAGS} 放到最后)

libmbedtls.dylib: $(OBJS)
	echo "  LD    $@"
	$(CC) -dynamiclib -o $@ $(OBJS) ${LDFLAGS} (将 ${LDFLAGS} 放到最后)

[编辑] 编译和安装 mbedtls

make
sudo make install
个人工具
名字空间

变种
操作
导航
工具