1 下载freerots
$ sudo git clone https://github.com/aws/amazon-freertos.git
2 安装编译工具
2.1 安装arm-gcc
$ sudo apt-get install gcc-arm-none-eabi
2.2 安装cmake
$ sudo wget https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz
$ sudo tar -zxv -f cmake-3.11.4.tar.gz
$ cd cmake-3.11.4
$ sudo ./bootstrap
$ sudo make
$ sudo make install
3 编译
3.1 配置
$ mkdir build
$ cmake -DVENDOR=st -DBOARD=stm32l475_discovery -DCMAKE_C_FLAGS=-std=gnu11 -DCOMPILER=arm-gcc -S . -B build
-- The C compiler identification is GNU 4.9.3
-- The CXX compiler identification is GNU 4.9.3
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/arm-none-eabi-gcc
-- Submodule update
=========================Resolving dependencies==========================
module disabled: ble_hal
reason: ble_hal::mcu_port is not defined by vendor.
dependency path: ble->ble_hal->ble_hal::mcu_port
module disabled: ota
reason: ota::mcu_port is not defined by vendor.
dependency path: ota->ota::mcu_port
module disabled: posix
reason: posix::mcu_port is not defined by vendor.
dependency path: posix->posix::mcu_port
====================Configuration for FreeRTOS====================
Version: 202002.00
Git version: 201912.00-356-gee81fe4
Target microcontroller:
vendor: STMicroelectronics
board: STM32L4 Discovery kit IoT node
description: B-L475E-IOT01A Discovery kit with low-power RF, Wi-Fi,
multiway sensing
family: STM32L4
data ram size: 128KB
program memory size: 1MB
Host platform:
OS: Linux-4.15.0-106-generic
Toolchain: arm-gcc
Toolchain path: /usr
CMake generator: Unix Makefiles
FreeRTOS modules:
Modules to build: common, crypto, defender, dev_mode_key_provisioning,
greengrass, https, kernel, mqtt, pkcs11, pkcs11_implementation,
platform, secure_sockets, serializer, shadow, tls, wifi
Enabled by user: defender, greengrass, https, mqtt, pkcs11, pkcs11_
implementation, platform, secure_sockets, shadow, wifi
Enabled by dependency: common, common_io, crypto, dev_mode_key_provisioning,
freertos, kernel, pkcs11_mbedtls, serializer, test_base, tls,
utils
3rdparty dependencies: http_parser, jsmn, mbedtls, pkcs11, tinycbor, unity
Available demos:
Available tests: test_common, test_common_io, test_crypto, test_defender,
test_greengrass, test_https, test_mqtt, test_pkcs11,
test_platform, test_secure_sockets, test_serializer,
test_shadow, test_tls, test_wifi
=========================================================================
-- Configuring done
-- Generating done
-- Build files have been written to: /home/uftp/02_opensource/01_C/amazon-freertos/build
3.2 编译
$ cd build
$ make
Scanning dependencies of target afr_kernel
[ 0%] Building C object CMakeFiles/afr_kernel.dir/freertos_kernel/event_groups.c.obj
[ 0%] Building C object CMakeFiles/afr_kernel.dir/freertos_kernel/list.c.obj
[ 1%] Building C object CMakeFiles/afr_kernel.dir/freertos_kernel/queue.c.obj
[ 1%] Building C object CMakeFiles/afr_kernel.dir/freertos_kernel/stream_buffer.c.obj
[ 1%] Building C object CMakeFiles/afr_kernel.dir/freertos_kernel/tasks.c.obj
[ 1%] Building C object CMakeFiles/afr_kernel.dir/freertos_kernel/timers.c.obj
[ 2%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01.c.obj
[ 2%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01_accelero.c.obj
[ 2%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01_gyro.c.obj
[ 3%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01_hsensor.c.obj
[ 3%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01_magneto.c.obj
[ 3%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01_psensor.c.obj
[ 4%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01_qspi.c.obj
[ 4%] Building C object CMakeFiles/afr_kernel.dir/vendors/st/stm32l475_discovery/BSP/B-L475E-IOT01/stm32l475e_iot01_tsensor.c.obj
****************************************************************************************
[ 98%] Building C object CMakeFiles/aws_tests.dir/libraries/abstractions/secure_sockets/test/iot_test_tcp.c.obj
[ 98%] Building C object CMakeFiles/aws_tests.dir/libraries/abstractions/wifi/test/iot_test_wifi.c.obj
/home/uftp/02_opensource/01_C/amazon-freertos/libraries/abstractions/wifi/test/iot_test_wifi.c: In function 'TEST_Full_WiFi_SETUP':
/home/uftp/02_opensource/01_C/amazon-freertos/libraries/abstractions/wifi/test/iot_test_wifi.c:607:5: warning: missing braces around initializer [-Wmissing-braces]
WIFIScanResult_t xScanResults[ 10 ] = { 0 };
^
/home/uftp/02_opensource/01_C/amazon-freertos/libraries/abstractions/wifi/test/iot_test_wifi.c:607:5: warning: (near initialization for 'xScanResults[0]') [-Wmissing-braces]
[100%] Linking C executable aws_tests.elf
text data bss dec hex filename
273088 4384 107064 384536 5de18 /home/uftp/02_opensource/01_C/amazon-freertos/build/aws_tests.elf
[100%] Built target aws_tests
4 扫描项目
$ bash ./ci/xcal-scanner.sh freertos
Workdir: /home/shaw/agent/xcalagent-2020-07-12/xcalagent
WARNING:root:Jaeger seems missing, skipping Jaeger initialization
2020-07-14 05:18:39,054 - INFO - process_arguments: begin to process arguments
2020-07-14 05:18:39,055 - TRACE - command_line_runner trying to login to server ...
2020-07-14 05:18:39,105 - TRACE - command_line_runner login completed.
2020-07-14 05:18:39,207 - TRACE - command_line_runner creating project scan task ...
2020-07-14 05:18:39,257 - TRACE - command_line_runner preparing the job configuration ...
2020-07-14 05:18:39,258 - TRACE - command_line_runner performing offline preprocessing ...
2020-07-14 05:18:39,259 - TRACE - XcalBuildTask Run xcalbuild command: /usr/bin/python3 /home/shaw/agent/xcalagent-2020-07-12/xcalagent/xcalbuild/linux/xcalbuild.py -i /home/uftp/02_opensource/01_C/amazon-freertos/build -o /home/shaw/agent/xcalagent-2020-07-12/xcalagent/workdir/jobs/7814c6f9-7d0a-4af4-aeed-1eb6a567da5f make
2020-07-14 05:18:39,259 - TRACE - XcalBuildTask XcalBuild Log Path: /home/shaw/agent/xcalagent-2020-07-12/xcalagent/workdir/jobs/7814c6f9-7d0a-4af4-aeed-1eb6a567da5f/xcalagent.log
2020-07-14 05:19:32,971 - TRACE - [output] xcalbuild done(=_=)
2020-07-14 05:19:33,044 - TRACE - subprocess return code: 0
2020-07-14 05:19:33,044 - TRACE - XcalBuildTask Finish with 0
2020-07-14 05:19:33,440 - TRACE - Compress source code complete: /home/shaw/agent/xcalagent-2020-07-12/xcalagent/workdir/jobs/7814c6f9-7d0a-4af4-aeed-1eb6a567da5f/source_code.zip
2020-07-14 05:19:33,440 - TRACE - CompressSourceTask Complete: Tue Jul 14 05:19:33 2020
2020-07-14 05:19:33,441 - TRACE - File Upload Start ('Tue Jul 14 05:19:33 2020', 'file:', 'source_code.zip', 'size:', '14231065 bytes')
2020-07-14 05:19:35,186 - TRACE - File Upload Complete Tue Jul 14 05:19:35 2020
2020-07-14 05:19:35,187 - TRACE - PrepareFileInfoTask Start Tue Jul 14 05:19:35 2020
2020-07-14 05:19:36,232 - TRACE - PrepareFileInfoTask Complete Tue Jul 14 05:19:36 2020
2020-07-14 05:19:36,232 - TRACE - File Upload Start ('Tue Jul 14 05:19:36 2020', 'file:', 'fileinfo.json', 'size:', '2082815 bytes')
2020-07-14 05:19:36,499 - TRACE - File Upload Complete Tue Jul 14 05:19:36 2020
2020-07-14 05:19:36,499 - TRACE - File Upload Start ('Tue Jul 14 05:19:36 2020', 'file:', 'preprocess.tar.gz', 'size:', '4367307 bytes')
2020-07-14 05:19:36,948 - TRACE - File Upload Complete Tue Jul 14 05:19:36 2020
2020-07-14 05:19:37,102 - TRACE - command_line_runner offline preprocessing finished.
![扫描freertos项目_第1张图片](http://img.e-com-net.com/image/info8/ebc29d2ebea84a43950bd3ef1715b43c.jpg)