错误的完整摘要如下:
Info: Internal Builder is used for build
arm-atollic-eabi-gcc -o test.elf main.o stm32f4xx_it.o system_stm32f4xx.o -T../Debug_STM32F401VC_FLASH.ld -specs=nosys.specs -static -Wl,-cref,-u,Reset_Handler -Wl,-Map=test.map -Wl,--defsym=malloc_getpagesize_P=0x80 -Wl,--start-group -lc -lm -Wl,--end-group -specs=nano.specs
c:/program files (x86)/atollic/truestudio for stm32 9.0.1/armtools/bin/../lib/gcc/arm-atollic-eabi/6.3.1/../../../../arm-atollic-eabi/bin/ld.exe: warning: cannot find entry symbol Reset_Handler; defaulting to 08000000
main.o: In function `main':
C:\Users\Deepayan\Atollic\TrueSTUDIO\STM32_workspace_9.0\test\Debug/..\main.c:26: undefined reference to `TM_USART_Init'
C:\Users\Deepayan\Atollic\TrueSTUDIO\STM32_workspace_9.0\test\Debug/..\main.c:29: undefined reference to `TM_USART_Puts'
C:\Users\Deepayan\Atollic\TrueSTUDIO\STM32_workspace_9.0\test\Debug/..\main.c:33: undefined reference to `TM_USART_Getc'我们应该在哪里指定重置处理程序?谢谢。
发布于 2018-08-18 13:27:47
处理程序在汇编程序启动文件中定义。例如,STM32F303xe系列uCs的startup_stm32f303xe.s。
您的项目配置不正确,缺少重要文件。
发布于 2020-04-13 01:44:54
我在重置处理程序上也遇到了同样的问题。由工具链未编译启动程序文件引起。Eclipse工具链没有自动包含它,因为它只在文件类型为S时接受程序集文件,而不是s。因此修复方法是将startup.S重命名为startup.s。
发布于 2021-07-15 00:17:23
处理程序在汇编程序启动文件中定义,该文件由STM32CubeIDE或STM32CubeMX自动生成。该文件位于项目根目录下名为"Startup“的文件夹中。它是以你的单片机命名的,例如startup_stm32f303xe.s,startup_stm32l476rgtx等。
警告"cannot find entry symbol Reset_Handler“表示启动文件可能是1.损坏、2.丢失或3.未包含在您的构建中。要修复情况1和2,只需从STM32CubeIDE或STM32CubeMX重新生成代码。
案例3更有趣。在代码生成时,STM32CubeIDE和STM32CubeMX有时会将“启动”文件夹标记为“从构建中排除”。更糟糕的是,该文件夹没有“已排除”图标,因此没有明显的方法来注意到它。因此,您需要右键单击"Startup“文件夹,转到"C/C++ Build”并取消选中"Exclude resource from build“复选框。这个问题似乎是随机出现的,通常是从其他项目复制的项目。
https://stackoverflow.com/questions/51904050
复制相似问题