从我粘贴的代码中,可以知道我是从STM32F407VG这个芯片的配置文件中拷贝过来的.
四、修改启动代码,使用GCC专用的.S文件由于GCC与ARMCC的汇编代码格式不相同,不信你可以用比较工具看一下支持GCC的.S与支持ARMCC的.S写法是否一样.
那么我们需要重新写支持GCC的.S的启动代码吗?当然不需要,因为ST的已经为我们写好了.
如,我使用的gcc路径D:\Code\project\Library\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc_ride7
五、配置完毕,编译程序排除解决相关错误如果你使用到一些标准的C 库函数,如spirntf这些东西,或者你会报如下错误.C:/Keil_v5/ARM/GCC/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv7e-m\libg.a(lib_a-sbrkr.o): In function _sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to_sbrk’
collect2.exe: error: ld returned 1 exit status
对与该问题的解决方法可以参考如下链接: 解决`_sbrk’错误的方法
这个链接主要告诉我们,如果有使用标准的C 函数,则要包含syscall.c 这个文件.
那么这个文件在哪里可以找到呢?
在Keil的pack文件目录下可以根据自己的芯片类型找到.如我的路径:C:\Keil_v5\ARM\Pack\Keil\STM32F4xx_DFP\2.5.0\Projects\STM32F4-Discovery\Examples\BSP\SW4STM32
那么此时,编译代码即可,原来的错误已经没有了.
至于如何设置JLINK及ST-LINK作为调试,这个跟使用ARMCC一样设置.这里大家可以在网上找一些教程,这里就不再介绍了.
[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。