我正在使用 TI Stellaris LM3S1968。该 MCU 具有 ARM Cortex-M3。
我在装有 Windows 7 的笔记本电脑上安装了一个 VM,并在那里安装了GNU Tools for ARM Embedded Processors。然后我安装了Stellaris Flash Programmer、GUI 和命令行。我还安装了Stellaris FTDI 驱动程序。
最后,我下载并解压了EK-LM3S1968 固件开发包。
在提取的文件夹中,有一些示例。其中之一是眨眼的。如果我去 /StellarisWare/board/ek-lm3s1968/blinky/gcc/ 有一个名为 blinky.bin 的文件。使用 Stellaris Flash Programmer,我可以将它连接到我的计算机并对其进行闪存,它会工作的。我尝试了各种示例,它们都有效。
现在我的目标是编译 /StellarisWare/board/ek-lm3s1968/blinky/ 中提供的示例代码,并将其烧写。但是,我运气不佳,因为我对 C 或微控制器编程不是很有经验。
我将 LM3S1968 库从 StellarisWare 文件夹复制到编译器的包含文件夹。然后我按照我在网上找到的一些例子,但我没有成功。这是我尝试过的:
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb blinky.c -nostartfile -T blinky.ld -o blinky.o
arm-none-eabi-ld -T blinky.ld -o blinky.out blinky.o
arm-none-eabi-objcopy -Obinary blinky.out blinky.bin
当我刷新这个 .bin 文件时,它什么也没做,LED 一直亮着。
我认为这是因为有一个 startup_gcc.c 文件,它处理在运行程序之前启动 MCU。但我不确定如何捆绑它。
有很多文件适用于不同的 IDE,但它们不是免费的,所以我想使用 GNU 工具。
我尝试在 StackOverflow 和谷歌搜索中搜索,但我无法找到答案。