gpt4 book ai didi

c - 如何编译和链接示例代码以获得二进制文件?

转载 作者:行者123 更新时间:2023-12-01 08:56:14 26 4
gpt4 key购买 nike

我正在使用 TI Stellaris LM3S1968。此 MCU 具有 ARM Cortex-M3。

我在装有 Windows 7 的笔记本电脑上安装了一个 VM,并在那里安装了 GNU Tools for ARM Embedded Processors .然后我安装了Stellaris Flash Programmer, GUI and command line .我还安装了 Stellaris FTDI Drivers .

最后,我下载并解压了 EK-LM3S1968 Firmware Development Package .

在解压的文件夹中,有一些例子。其中之一是眨眼。如果我转到/StellarisWare/board/ek-lm3s1968/blinky/gcc/,会有一个名为 blinky.bin 的文件。使用 Stellaris Flash Programmer,我可以将它连接到我的计算机并烧写它,它就会工作。我尝试了各种示例,它们都有效。

现在我的目标是编译/StellarisWare/board/ek-lm3s1968/blinky/中提供的示例代码,并刷入它。但是,我运气不佳,因为我对 C 语言或微 Controller 编程不是很有经验。

我将 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 中搜索此处并使用谷歌搜索,但找不到答案。

最佳答案

我相信链接器正在丢弃启动代码。确保包含它的一个好方法是使用 KEEP在你的链接描述文件中。这将确保链接器不会丢弃您的启动代码。如果您没有在某个部分中包含启动代码,则需要先执行此操作。

关于c - 如何编译和链接示例代码以获得二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com