驾驶证体检挂什么科| 供不应求是什么意思| 乙肝没有抗体是什么意思| 见红是什么意思| 一花一世界一叶一菩提什么意思| 羽衣甘蓝是什么| 男人性功能不行是什么原因| paul是什么意思| 什么的乌鸦| 蚊子吸血是为了什么| n字鞋子是什么牌子| 庚日是什么意思啊| 玫瑰什么时候开花| 一个山一个脊念什么| 重孝是什么意思| 怀孕了什么时候做检查| 彻夜难眠什么意思| 9年是什么婚| 宝宝流鼻血是什么原因| 前纵韧带钙化是什么意思| 异位性皮炎是什么意思| 载脂蛋白b高是什么原因| 牛黄清心丸适合什么人群吃| 孩子咳嗽吃什么饭菜好| 青岛啤酒节是什么时候| 生长纹是什么| 血常规什么颜色的管子| 什么心竭什么| 脖子下面是什么部位| 杨梅泡酒有什么功效| 艾滋病有什么危害| 肝火旺吃什么药好| 男人左眼跳是什么意思| 什么时候有胎心| 封神榜讲的是什么故事| 偶发室性期前收缩是什么意思| 馐什么意思| 什么的高楼| 西洋参和花旗参有什么区别| 姐妹是什么生肖| 什么是指标生| 鄂尔多斯是什么意思| 反流性食管炎吃什么中成药最好| 玖字五行属什么| 要不然是什么意思| 女孩为什么难得午时贵| 面部肌肉跳动是什么原因| 一抽一抽的打嗝叫什么| 粉色史迪仔叫什么| 高血压不能吃什么| 笔芯是什么意思| 高铁与动车有什么区别| 小青蛙吃什么| 方寸之地什么意思| 最高人民法院院长什么级别| 眼袋大是什么原因引起的| 为什么老想睡觉| 低碳生活是什么意思| 检查梅毒挂什么科| 兔子不吃窝边草是什么意思| 新生儿满月打什么疫苗| 高处不胜寒什么意思| 什么津乐道| 转氨酶高吃什么好得快| 叙字五行属什么| 吃山楂片有什么好处| 50公斤发什么物流便宜| 泡椒是什么辣椒| 2010属什么生肖| 容易感冒是什么原因| 开车压到蛇有什么说法| 平方和是什么| yolo是什么| 糜烂性胃炎吃什么药效果好| 版记是什么| 下肢静脉曲张是什么原因引起的| 益生菌的食物是什么| 什么体质容易长肿瘤| 什么对眼睛好| 吃什么补肺养肺比较好| 心梗做什么手术| 大陆去台湾需要什么手续| 女人梦见大蟒蛇是什么征兆| 什么是逆向思维| 独活主治什么病| 埃及的母亲河是什么| 土是念什么| 茉莉花茶适合什么人喝| 考试前吃什么好| 斯德哥尔摩综合征是什么| 嘴无味是什么病的征兆| 什么人不能吃榴莲| 什么情况下做肾穿刺| 食道炎是什么症状| 人的本性是什么| 腿长身子短有什么说法| 凤凰花什么时候开| 警示是什么意思| 夏天适合吃什么水果| 刷墙的白色涂料叫什么| cpr是什么意思| 8月29号是什么日子| 小孩表演后卸妆用什么| 瑛字五行属什么| 舅舅的爸爸叫什么| 胜字五行属什么| 便秘用什么药好| 颜控什么意思| 笄礼是什么意思| 口臭用什么药| 便秘吃什么快速通便| 女人下嘴唇厚代表什么| 六月初九是什么日子| 6月15是什么星座| 关塔那摩监狱为什么在古巴| 便秘挂什么科室| 皮肤一碰就红是什么原因| 厚颜无耻是什么生肖| 梦见粉条是什么意思| 儿童过敏性鼻炎吃什么药好| 糖粉是什么| 冬天怕冷夏天怕热是什么体质| 罗非鱼长什么样| 为什么会晕血| 咳嗽吃什么| 党的执政理念是什么| 什么时候拔罐最好| 土羊是什么字| 雀的偏旁是什么| 泡脚对身体有什么好处| 左肩后背疼是什么原因| 爱意是什么意思| 抉择是什么意思| movefree是什么药| 乳贴是什么| 三伏天是什么| 77年五行属什么| 大量出汗是什么原因| 褥疮用什么药膏| 老是放屁吃什么药| 过桥米线为什么叫过桥| 肝功十二项包括什么| 什么水不能喝脑筋急转弯| 人流需要准备什么| 淀粉酶高是什么原因| 舌头有问题应该挂什么科| 吃什么去肝火| 表述是什么意思| 试管婴儿是什么| 如你所愿是什么意思| 伊维菌素是什么药| 虎头蛇尾是什么意思| 肚子有水声是什么原因| 毛囊炎是什么| 孟买血型是什么意思| 胆囊炎吃什么水果好| 打狂犬疫苗挂什么科| 十一月九号是什么星座| 噗噗噗是什么意思| 吃什么有助于排便| 凌霄花什么时候开花| 煮毛豆放什么调料好吃| 继发不孕什么意思| 蒜薹和蒜苔有什么区别| 讨厌是什么意思| 长期胃胀是什么原因| 吃什么可以增强记忆力| 门头是什么意思| 什么时候中秋节| 子宫后倾位是什么意思| ts是什么品牌| happy halloween是什么意思| 梦见把头发剪短了是什么意思| 宫颈纳氏腺囊肿是什么意思| 资本运作是什么意思| 什么是2B铅笔| 头疼 吃什么药| 什么是压缩性骨折| 1988年是什么生肖| 甘油三酯高挂什么科| 钢铁锅含眼泪喊修瓢锅这是什么歌| 海参是补什么的| 甲辰是什么意思| 多心是什么意思| 猪八戒原名叫什么| 嘴巴下面长痘痘是什么原因引起的| 五岳是什么意思| 森达属于什么档次的鞋| 元宵节干什么| 毛遂自荐什么意思| 预谋是什么意思| 什么是功| 身份证穿什么衣服| 老鼠最怕什么气味驱赶| 脑萎缩吃什么药能控制| 舌尖红是什么原因| 什么东西能去脸上的斑| 胃镜后吃什么| 尿酸高可以吃什么肉| 女生适合抽什么烟| 无冕之王是什么意思| 物以类聚形容什么动物| 左胸隐隐作痛是什么原因| 不遗余力的遗是什么意思| 儿童发育过早应该挂什么科| 滑膜炎吃什么好得快| 为什么有狐臭| 孕妇快生的时候有什么征兆| 什么是逆向思维| 什么的麦田| x表示什么| 俊字五行属什么| bid医学上是什么意思| e-mail什么意思| 梅核气吃什么药| 什么穿针大眼瞪小眼| diptyque属于什么档次| 生长激素分泌的高峰期是什么时候| dw是什么| 雌二醇e2是什么意思| 霉菌反复发作是什么原因| 雅号是什么意思| 富丽堂皇是什么意思| 舌头发白有齿痕是什么原因| 尿酸高挂什么科| 宝宝大便绿色是什么原因| 番茄酱和番茄沙司有什么区别| 排浊是什么意思| 囊肿是什么原因引起的| 梦见吃西瓜是什么征兆| 桂圆什么时候上市| 口炎念什么| 为什么七星瓢虫是益虫| 利尿是什么意思| 石见读什么| 煮虾放什么| 招蚊子咬是什么血型| 外耳炎用什么药| 什么是手帐| 内参是什么意思| 口是什么感觉| 梦见下雨是什么征兆| 什么的味道| 甲亢的症状是什么| 膝盖疼挂什么科室| 616是什么意思| 黄眉大王是什么妖怪| 吃靶向药不能吃什么| 有偿什么意思| 名落孙山的意思是什么| 白什么什么| 孕妇可以喝什么茶| 尿血是什么问题| 胸ct和肺ct有什么区别| 清炖排骨都放什么调料| 霉菌是什么引起的| 肝有钙化灶是什么意思| g是什么单位| 菠萝蜜和什么不能一起吃| 洋葱不能跟什么一起吃| 安络血又叫什么名| 两千年前是什么朝代| 跌打损伤挂什么科| 女人梦见蛇是什么意思| 百度
打印
[CW32L083系列]

“读脸”技术能预测日欧央行政策?

[复制链接]
11971|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2023-6-19 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#申请原创# #有奖活动# @21小跑堂
【目的】
官方示例提供了MDK、IAR的示例,也提供了以上两个环境的工程模板,但是没有GCC的工程模板,GCC编译环境与MDK、IAR主要区别就是C语言启动环境的配置、链接文件的不一至,因为要实现VScode或者其他的编译器来实现开发环境的搭建,就需要自己编写CW32L083_FLASH.ld、以及startup_cw32l083_gcc.s。
【实现的思路】
1、寻找官方支持,我在CW32生态群里发了求助的信息,没有回复。
2、在淘宝客服,咨询,回复说,没有工程。
3、有大佬提供了CW32F030的工程,我了解到CW32F030与CW32L083一样是CortexM0+的内核,所以想他的启动文件跟LD应该可以相互借鉴。所以偿试修改CW32F030的工程来实现GCC的工程。
【实现步骤】
1、拷贝一份工程,另存为cw32l083_gcc,并用vscode打开。
2、到官网下载cw32l083的固件库。
3、把cw32l083-stdperiph-lib/Libraries下面的固件替换掉cw32l083_gcc/Libraries固件。
4、复制cw32l083.h、system_cw32l083.h到/Libraries/CMSIS/Device/目录下面。删除原来的cw32f030.h以及system_cwl083.h。
5、Libraries/CMSIS/Device/startup_cw32f030_gcc.s重命名为startup_cw32l083_gcc.s。
6、Libraries/CMSIS/Device/CW32f030_FLASH.ld重命名为CW32L083_FLASH.ld。
7、Debug/CW32F030.svd 重命名为CW32L083.svd。并把其文件内的cwf030修改为cw32l083.
8、复制l083固件库中的cw32l083-stdperiph-lib/IdeSupport/MDKWHXY.CW32L083_DFP.1.0.8.pack 到Debug/WHXY.CW32L083_DFP.1.0.8.pack,并删除原来的.pack文件。
9、复制cw32l083-stdperiph-lib/Examples/GPIO/gpio_blink/USER/src/interrupts_cw32l083.c 到/cw32l083_gcc/Core/app/interrupts_cw32l083.c。以及inc下面的interrupts_cw32l083.h。
10、修改Libraries/Libraries.mk文件内容,主要是文件夹的名称重新定位。
# 模块名_DIR 是上一层传递下来的参数,
# 是从工程根目录到该模块文件夹的路径

# 向 C_SOURCES 中添加需要编译的源文件
C_SOURCES += $(wildcard $(Libraries_DIR)/CW32L083_StdLib/src/*.c)

# 向 C_INCLUDES 中添加头文件路径
C_INCLUDES += -I$(Libraries_DIR)/CMSIS/Include
C_INCLUDES += -I$(Libraries_DIR)/CMSIS/Device/
C_INCLUDES += -I$(Libraries_DIR)/CW32L083_StdLib/inc


# 向 LIBDIR 中添加静态库文件路径
# LIBDIR += -L$(Libraries_DIR)/Lib
# 向 LIBS 中添加需要链接的静态库
# LIBS += -lxxxx

# link script
LDSCRIPT = $(Libraries_DIR)/CMSIS/Device/CW32L083_FLASH.ld


# 汇编文件宏定义
AS_DEFS +=

# 汇编头文件目录
AS_INCLUDES +=

# 汇编源文件(starup)
ASM_SOURCES += $(Libraries_DIR)/CMSIS/Device/startup_cw32l083_gcc.s

11、修改makefile,修加gcc的路径:
#######################################
# 编译器指定
#######################################
PREFIX = arm-none-eabi-
# 启用下一项以指定GCC目录
GCC_PATH = /Applications/ARM/bin/
12、修改pyocd.yaml,指定tartgets、pack包名称:
pack: ./Debug/WHXY.CW32L083_DFP.1.0.8.pack
target_override: CW32L083vc
frequency: 24000000
13、查找CW32L083用户手册,修改/Libraries/CMSIS/Device/CW32L083_FLASH.ld的RAM、FLASH如下:
/* Specify the memory areas */
MEMORY
{
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 24K
FLASH (rx)     : ORIGIN = 0x00000000, LENGTH = 256K
}
14、由于.h与MDK的编译上有所差别会报警告
Libraries/CW32L083_StdLib/inc/cw32l083_gtim.h:272:52: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
  272 | #define IS_GTIM_DMA(DMA)                   (((DMA) & 0xFFFFFFC0 == 0x0UL) && (DMA) != 0x0UL)
修改为:#define IS_GTIM_DMA(DMA) ((((DMA) & 0xFFFFFFC0) == 0x0UL) && (DMA) != 0x0UL),消除运算符的警告。
15、修改SysTick.c中的__weak 编译错误,修改为:__attribute__ ((weak))
到此,工程修改就结束。
编译后无警告无错误:
[LD]    build_exec/template.elf
[HEX]   build_exec/template.elf -> build_exec/template.hex
[BIN]   build_exec/template.elf -> build_exec/template.bin
[DUMP]  build_exec/template.elf -> build_exec/template.s
[SIZE]  build_exec/template.elf
   text    data     bss     dec     hex filename
   1088      16    1568    2672     a70 build_exec/template.elf
-e Build Finish
修改app_main.c的LED针脚,内容如下:
#include "app_main.h"
#include "cw32l083_gpio.h"
#include "cw32l083_rcc.h"

static inline void LED_Init()
{
    GPIO_InitTypeDef GPIO_InitStruct;
    RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_GPIOC, ENABLE);

    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.IT = GPIO_IT_NONE;
    GPIO_InitStruct.Pins = GPIO_PIN_2;
    GPIO_Init(CW_GPIOC, &GPIO_InitStruct);
}

int main(void)
{
    LED_Init();
    // 开启两线调试接口
    RCC_SWDIO_Config(RCC_SYSCTRL_SWDIOEN);

    while (1)
    {
        GPIO_TogglePin(CW_GPIOC, GPIO_PIN_2);
        FirmwareDelay(1000000);
    }

    return 0;
}

/******************************************************************************
* EOF (not truncated)
******************************************************************************/
#ifdef USE_FULL_ASSERT
/**
* [url=home.php?mod=space&uid=247401]@brief[/url]  Reports the name of the source file and the source line number
*         where the assert_param error has occurred.
* @param  file: pointer to the source file name
* @param  line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
    /* USER CODE BEGIN 6 */
    /* User can add his own implementation to report the file name and line number,
       tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
    /* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
编译下载,就可以实现Led1闪烁了。
liujianhuadeMacBook-Pro:cw32l083_gcc liujianhua$ make flash
-e Start pyOCD
0000909 I Loading /Users/liujianhua/cw32l083/cw32l083_gcc/build_exec/template.elf [load_cmd]
[==================================================] 100%
0001522 I Erased 0 bytes (0 sectors), programmed 0 bytes (0 pages), skipped 1536 bytes (3 pages) at 2.45 kB/s [loader]
【总结】
经过N次的试验,终于成功的实现了cw32l083的gcc工程模块的创建。使得在linux、macOS环境下不能用MDK、IAR的难题。
沙发
pssyx| | 2023-6-20 09:48 | 只看该作者
本帖最后由 pssyx 于 2023-6-20 09:53 编辑

十分佩服!已经在苹果的MacBook-Pro上成功运行CW32。
板凳
lulugl|  楼主 | 2023-6-20 09:55 | 只看该作者
pssyx 发表于 2023-6-20 09:48
十分佩服!已经在苹果的MacBook-Pro上成功运行CW32。

感谢大佬的认可!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

180

主题

825

帖子

12

粉丝
脚拇指外翻是什么原因造成的 月加厷念什么 婴儿八个月可以吃什么辅食 月经推迟什么原因 尿路感染用什么药
什么的街道 阿堵物是什么意思 什么颜色加什么颜色等于蓝色 b是什么牌子 吃维生素b1有什么好处和副作用
臆想是什么意思 小肚子痛吃什么药 炖汤用什么鸡 sp02是什么意思 cba什么意思
纪念礼物送什么好 阳痿吃什么中成药 老是睡不着觉是什么原因 胃经常胀气是什么原因 廓清是什么意思
成都市市长是什么级别hcv9jop7ns2r.cn 清明为什么插柳枝hcv9jop1ns0r.cn 肝肾两虚吃什么中成药hcv9jop0ns7r.cn 葡萄糖高是什么原因hcv8jop3ns0r.cn 头部ct挂什么科hcv8jop2ns9r.cn
头痛头晕吃什么药hcv9jop1ns3r.cn 羊宝是什么东西hcv7jop6ns1r.cn 大肠杆菌是什么意思hcv8jop3ns2r.cn 胃疼吃什么药好的快hcv7jop5ns6r.cn 骨刺是什么原因引起的hanqikai.com
脖子长疣是什么原因hcv9jop6ns6r.cn 尿道炎吃什么消炎药hcv9jop8ns1r.cn 备孕需要补充什么hcv8jop2ns5r.cn 范冰冰和洪金宝什么关系hcv7jop6ns4r.cn 血小板高是什么病hcv8jop8ns1r.cn
结膜炎吃什么消炎药hcv8jop3ns4r.cn 睾丸疼吃什么药hcv7jop6ns2r.cn 铅中毒用什么解毒cl108k.com 什么是皮包公司hcv9jop2ns0r.cn 生菜什么时候种hcv8jop3ns9r.cn
百度