配环境什么的最想死了,真的很想死。
因为最近给NRF的蓝牙芯片写东西,用了Keil,开发板是以前朋友的。遇到了不少问题。
先解决第一个,现在Keil版本默认的编译器都是V6的。
这样就叫V6
OK,一般你现在配好环境编译以前的版本的文件,都是报错:
ADuCM355电化学模拟前端-Keli编译版,可以看这个文章下载安装。
但是注意这个就编译器的位置你要和V6的编译器平行安装:
就是在这个目录先建立一个文件夹,我名字叫ARMCC
在这里启用,就是给项目启用
最新的是这样的版本
然后在默认编译器的版本选择里面都是选带版本号的
如果没有错,应该是这样的,或是就多一个V6版本的名字
因为我这个开发板的demo以前是用这个CMSIS4.5写的,所以你就得下载这个。
先安装NRF家族的器件包
然后安装CMSIS的版本包
然后怎么启用呢?
这里,fixed的版本,都选中(我不知道有没有用,但是你最好和我一样)
然后编译,看见3个错误
指向这里
是一个管编译控制的文件
我就在想,应该是版本跨太多了,一些标记变化了。
事实上3个版本的CMSIS都是在这里的
虽然看上去上面启用了4.5的CMSIS,但是还是不生效,这里也没有被启用的选项。
就在写的功夫,发现这个CMSIS的版本可以选择了:
选择4.3,成功编译
事实上我刚刚不是这样成功的
我是把这个目录加到了编译头文件的位置
就是这样
现在是这样
这里写了一个STM32的小程序也是可以正常编译的
所有的编译显示在这里
这里就是显示了这个,但是我没有找到
一定编译器是找到了这个地址的头文件,编译成功。
看链接的头文件
看,4.5
剩下是这里
*.dep和*.d文件(Dependency file)记录的是工程或其它文件的依赖,主要记录了引用的头文件路径,其中*.dep是整个工程的依赖,它以工程名命名,而*.d是单个源文件的依赖,它们以对应的源文件名命名。
F (.\main.c)(0x66236C9D)(-c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections ...)
这个是编译项目的命令,也就是rebuild之后发生了什么。
也是这样的命令
原来NRF51是M0内核
链接文件
为啥要下这么大辛苦搞这个呢?因为keil被ARM买了,编译器也相比于ARM GUN有着更好的编译性能。
可以这里切换
最重要的是,基于M3,M0的单片机太多了。51的内核太老了,不像样子。
搞这个也是熟悉别的单片机的开发,百利而无一害,毕竟嵌入式第一课永远是搭建环境。
感谢这个
Gemini也感谢
https://blog.csdn.net/joujoo/article/details/136653185?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-136653185-blog-135567142.235^v43^pc_blog_bottom_relevance_base1&spm=1001.2101.3001.4242.1&utm_relevant_index=3
https://blog.csdn.net/qq_52251819/article/details/135567142
https://www.keil.com/pack/doc/CMSIS/Driver/html/group__spi__interface__gr.html#gab2a303d1071e926280d50682f4808479
https://blog.csdn.net/wojioubugaosuni/article/details/127812367
https://forum.edgeimpulse.com/t/fatal-error-cmsis-compiler-h-no-such-file-or-directory/1301
https://github.com/STMicroelectronics/cmsis_core/blob/master/Include/cmsis_compiler.h
https://www.keil.com/pack/doc/CMSIS/Core/html/group__compiler__conntrol__gr.html
https://doc.embedfire.com/mcu/i.mxrt/i.mxrt1052/zh/latest/doc/chapter39/chapter39.html