如何使用keil mdk 6编译N32WB031?由于新版本的keil mdk 6不包含mdk 5,且keil mdk 6的编译速度、性能要比mdk 5好上不少,所以很多工程师想把手头上的项目移植到新版本的keil mdk 6上面,这里国民技术代理商-海凌微整理了相关用keil mdk 6编译N32WB031的教程给大家。供大家学习参考。
N32WB031系列蓝牙芯片是国民技术新一代高性能、超低功耗的蓝牙5.1芯片,采用32位Arm® Cortex®-M0内核,最高工作主频64MHz,片上集成48KB SRAM,512KB Flash。非常受工程师青睐。芯片集成先进的 BLE5.1射频收发器,符合蓝牙BLE5.1规范,可配置为标准的1Mbps BLE模式,2Mbps增强BLE模式, 125Kbps BLE远程模式(S8),500Kbps BLE远程模式(S2)。支持AOA(到达角)和AOD(离去角),支持 RSS I ( 接 收 器 信 号 强 度 指 示 ),同 时 支 持 主 从 角 色,支 持 多 连 接,支 持 数 据 包 长 度 扩 展,支 持 KEYSCAN,IRC,10位1.33Msps ADC(可配置为16位16Ksps),支持模拟MIC输入,PGA放大,支持基 本、通用、高级TIMER,RTC,WWDG,IWDG,LPUART,USART,SPI,I2C等外设。
如何使用keil mdk 6编译N32WB031
1.include设置中删除core的include,添加cmsis/core的pack
2.改system_n32wb03x.c 256行函数为
void system_delay_cycles(uint32_t i) {
__asm volatile
(
"SUBS r0, #1 \n"
"BNE system_delay_cycles \n"
"BX LR \n"
);
}
3.ns_delay.h 54行改为"void delay_cycles(uint32_t ui32Cycles) __attribute__((naked));"
4.改asm为armclang(auto select)
5.在n32wb03x.h 45行加入
#define __align(x) __attribute__((aligned(x)))
#define__weak __attribute__((weak))
6.reg_ipcore.h中__INLINE替换为__STATIC_INLINE
7.co_utils.h中__INLINE替换为__STATIC_INLINE(除最后一个static __INLINE不替换)
8.co_list.h中__INLINE替换为__STATIC_INLINE
9.ke_msg.h中__INLINE替换为__STATIC_INLINE
10.co_math.h中__INLINE替换为__STATIC_INLINE(static __INLINE不替换)
11.reg_blecore.h中__INLINE替换为__STATIC_INLINE
以上是如何使用keil mdk 6编译N32WB031的相关参考,需要国民技术N32WB031的相关例程可以咨询在线客服。