我正在使用STM32F4 Discovery板开发一个简单的应用程序到板载加速度计,同时点亮安装在加速度计设备周围的各个LED。我想使用任何RTOS,但由于我不熟悉使用RTOS,因此我无法确定哪一个。
如果有人能够通过使用Linux和一些Makefile来详细说明启动这个项目的步骤,那将不胜感激。
答案 0 :(得分:2)
以下是使用Linux和Makefile启动项目的步骤:
在Ubuntu上:
apt-get install gcc-arm-none-eabi
wget https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q1-update/+download/gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2
tar xjf gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2
您可以选择STM32F4 DSP and standard peripherals library
或者,您也可以使用其他库,例如libopencm3。
最常见的是使用FreeRTOS。
做这样的事情:
CROSS_COMPILE=arm-none-eabi-
SRC := myapp.c
SRC += <the needed library files>
SRC += <the needed freertos files>
myapp.elf: myapp.bin
$(CROSS_COMPILE)objcopy -Obinary $@ $<
myapp.bin: $(SRC:%.c=%.o)
$(CROSS_COMPILE)gcc -mthumb -nostartfiles -Wl,--gc-sections $^ -o $@
%.o: %.c
$(CROSS_COMPILE)gcc -mthumb -ffunction-sections -fdata-sections -fno-common -Os -c $< -o $@
您应该添加一些-I
或-L
来修复包含问题。
所需的FreeRTOS文件为:list.c, queue.c, tasks.c, portable/MemMang/heap_4.c, portable/GCC/ARM_CM4F/port.c
Demo/CORTEX_M4F_STM32F407ZG-SK
中有example project可以帮助您。
在路径中添加工具链目录并运行Makefile:
export PATH="$PATH:/path/to/toochain/bin"
make
您必须使用STM32F4的DFU模式。
使用apt-get install dfu-util
在Ubuntu上安装该工具,然后您可以使用以下命令刷新elf
文件:
sudo dfu-util -a 0 -s 0x08000000 -D myapp.elf