硬汉嵌入式论坛

 找回密码
 立即注册
楼主: scu319hy
收起左侧

[其它] 给大家分享一下我自己DIY的开发环境

  [复制链接]

335

主题

2037

回帖

3047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3047
发表于 2024-3-12 11:05:26 | 显示全部楼层
作者,您好,

用右键打开一个文档后,看不到任何菜单栏,到处点点也打不开基本的文本编辑选项。
Snipaste_2024-03-12_11-02-54.png
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-12 11:10:10 | 显示全部楼层
caicaptain2 发表于 2024-3-12 11:05
作者,您好,

用右键打开一个文档后,看不到任何菜单栏,到处点点也打不开基本的文本编辑选项。

你这是脚本出错,没有初始化成功。
你看下输出面板里,有什么错误?
有可能是你打开文件的活动目录中有什么东西影响了脚本运行。
比如:有重名的动态库之类的
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-12 11:53:12 | 显示全部楼层
zhjr1220 发表于 2024-3-12 09:44
zephyrRTOS也是采用CMake,这个系统支持很多板子,强烈建议支持该系统

感谢你的建议,你说的这套框架我之前没有了解过。
刚才大概看了一下,感觉支持起来比较复杂。
它的工具封装层次似乎比较复杂,不知道有没有预留对集成开发环境支持的能力。
这类整合框架通常会解决一些硬件平台的适配问题,但又会引入非常多无谓的框架设计,光安装都要掉一地头发。各种依赖一大堆,配置和使用都挺费神,尤其是还要翻墙。
远不如编译工具链+CMake+库的方式清爽
支持这个需要花时间研究一下先
回复

使用道具 举报

0

主题

12

回帖

12

积分

新手上路

积分
12
发表于 2024-3-12 14:29:58 | 显示全部楼层
来膜拜大佬
回复

使用道具 举报

0

主题

12

回帖

12

积分

新手上路

积分
12
发表于 2024-3-12 14:30:18 | 显示全部楼层
来膜拜大佬
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-3-12 21:59:19 | 显示全部楼层
来膜拜大佬
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-13 03:01:43 | 显示全部楼层
zhjr1220 发表于 2024-3-12 09:44
zephyrRTOS也是采用CMake,这个系统支持很多板子,强烈建议支持该系统

初步添加了对zephyr的支持,如果你的按官方的手册完成了环境配置,这个版本应该能够检测到
还未实现工程向导,只能手工建立项目
可以正常编译,烧写和调试,补全/跳转等编辑功能一切正常。
我在rp2040上测试通过。但不确定对其它板子的支持情况。
因为zephyr把工具链包装的很深,无法设置gdbserver的端口,也无法检测当前的工具链。可能会导致不少问题。
你需要手工准备gdb,openocd等相关工具,edx的arm-gcc整合包中有
另外:你需要手工设置BOARD,在CMakeLists.txt头部添加set(BOARD xxxx)
https://www.ed-x.cn/versions/edx-zephyr-testing.7z
回复

使用道具 举报

0

主题

34

回帖

34

积分

新手上路

积分
34
发表于 2024-3-13 10:21:55 | 显示全部楼层
膜拜 点赞,学习了
回复

使用道具 举报

0

主题

29

回帖

29

积分

新手上路

积分
29
发表于 2024-3-13 10:24:31 | 显示全部楼层
楼主的 edx 与 CodeBlocks 是不是同类的软件?  CodeBlocks 我看也是个编辑器,然后能配置调用各种编译链,实现 ide 功能。
如果是这样, edx 能否支持打开 CodeBlocks 下建立的项目?
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-13 13:00:39 | 显示全部楼层
imliyucai 发表于 2024-3-13 10:24
楼主的 edx 与 CodeBlocks 是不是同类的软件?  CodeBlocks 我看也是个编辑器,然后能配置调用各种编译链, ...

CodeBlocks的目标是做个IDE
而EDX的目标是做个记事本,以前的版本连图标都是盗用的记事本
这点你看它们本身的大小和启动的速度就知道了

支持CodeBlocks可能会有些得不偿失(要花很多精力),它的项目文件结构比较复杂,并且我也没法把控它的扩展方向。连CMake都已经放弃它了。
如果有什么工具能把它的项目转换成CMake项目,那就可以直接用EDX打开了。
你有兴趣的话可以尝试自己实现这个功能,只需要在startup.lua中的xws_mgr._pre_load_dir中添加一个新的处理逻辑,在打开目录时根据CodeBlocks项目生成CMakeLists.txt即可。
edx中有个函数utils:load_cbp(file_path)可以加载CodeBlocks项目,提取了其中的目标信息,但其它的文件/分组等信息没有。

其实,如果CodeBlocks的项目不复杂,你可以直接用EDX打开项目目录,然后在工程面板里手工新建个CMakeLists.txt文件,EDX会自动生成工程模板,简单修改一下就可以用了。
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-13 13:14:40 | 显示全部楼层
2023-03-13 13:00前下载了 https://www.ed-x.cn/versions/edx-zephyr-testing.7z 的朋友需要重新再下载一次
之前的版本破坏了对CubeMX工程的处理逻辑。无法正确加载CubeMX。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-3-13 13:17:28 | 显示全部楼层
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2024-3-13 21:34:37 | 显示全部楼层
scu319hy 发表于 2024-3-12 11:53
感谢你的建议,你说的这套框架我之前没有了解过。
刚才大概看了一下,感觉支持起来比较复杂。
它的工具 ...

zephyr应该是有预留对集成开发环境支持的能力,因为官方有规划支持IAR软件及其他一些第三方商业软件
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2024-3-13 21:39:43 | 显示全部楼层
scu319hy 发表于 2024-3-13 03:01
初步添加了对zephyr的支持,如果你的按官方的手册完成了环境配置,这个版本应该能够检测到
还未实现工程 ...

zephyr的工具链是通过cmake设置变量实现 set ZEPHYR_TOOLCHAIN_VARIANT=xxx和set XXX_TOOLCHAIN_PATH=yyy 去配置
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-14 00:58:26 | 显示全部楼层
zhjr1220 发表于 2024-3-13 21:39
zephyr的工具链是通过cmake设置变量实现 set ZEPHYR_TOOLCHAIN_VARIANT=xxx和set XXX_TOOLCHAIN_PATH=yyy ...

可能是我没说清楚,我并不是要设置工具链,因为我不太可能逐个分析它每个board对应的工具链及相关的库,辅助工具等信息。而是需要从它获取当前board对应的相关信息。比如:现在应该用哪个版本的gdb
或者是当前的board可以用哪种方式调试,烧写。
虽然它现在可以自动烧写,但感觉隐藏信息过多。比如每种board会使用默认的仿真器。我用jlink就没法搞rp2040...但实际上通过openocd/pyocd可以直接用jlink或stlink或其它什么仿真器。
再比如,board为esp32s3时,可以通过串口烧写,也可以通过仿真器之类的烧写。但它似乎只能用串口来烧,而且相关的配置封装得不上不下。要想支持好,还是需要针对每个board单独处理。
总之,它的工具实现思路就是一个黑盒,与其它工具交互的相关设计几乎为零。还不如单独提供库和相关的CMake,把其它部分留出来让别人来做。
回复

使用道具 举报

335

主题

2037

回帖

3047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3047
发表于 2024-3-14 08:26:28 | 显示全部楼层
scu319hy 发表于 2024-3-12 11:10
你这是脚本出错,没有初始化成功。
你看下输出面板里,有什么错误?
有可能是你打开文件的活动目录中有 ...

Snipaste_2024-03-13_17-00-02.png


看不懂啊,只是想当个文本编辑器试试。是因为中文字符的目录导致的吗?
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2024-3-14 10:29:30 | 显示全部楼层
我擦,怎么那么多大佬
回复

使用道具 举报

2

主题

51

回帖

57

积分

初级会员

积分
57
发表于 2024-3-14 10:35:14 | 显示全部楼层
大佬,有没有自动换行的功能
1.png
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2024-3-14 10:42:34 | 显示全部楼层
建议加入功能,对未生效的宏定义,淡化对应的语句
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-14 10:54:55 | 显示全部楼层
caicaptain2 发表于 2024-3-14 08:26
看不懂啊,只是想当个文本编辑器试试。是因为中文字符的目录导致的吗?

是的,路径中有中文,且不在当前目录时,会有这个问题。
是最初解决一个环境配置问题引入的新问题。
现在有两个办法可以解决:
1. 把路径里的中文去掉
2. 找到init.lua, 把前两行注释掉,如下:
-- package.cpath = edx.app_path..[[\?.dll;.\?.dll]];
-- package.path = edx.app_path..[[\lua\?.lua;.\lua\?.lua]];

我后面再想办法来解决,感谢反馈
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-14 10:56:36 | 显示全部楼层
小麦吉 发表于 2024-3-14 10:35
大佬,有没有自动换行的功能

是的,目前不支持自动换行,已经弄了一部分,还没搞完。
主要是因为自动换行对性能影响很大,当初设计时就考虑不支持的
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-14 10:57:52 | 显示全部楼层
2859932063 发表于 2024-3-14 10:42
建议加入功能,对未生效的宏定义,淡化对应的语句

好的,等把基于clangd的语义高亮实现,应该就会有你要的这个功能了。需要做的工作比较多。
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2024-3-14 11:34:13 | 显示全部楼层
scu319hy 发表于 2024-3-14 10:57
好的,等把基于clangd的语义高亮实现,应该就会有你要的这个功能了。需要做的工作比较多。

不太会用啊大佬有空可以教一下吗?在项目中生成的stm32工程,我直接在man.c中##include "stm32h7xx.h" 为什么有include header stm32h7xx.h is not used directly 的提示
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2024-3-14 11:55:03 | 显示全部楼层
scu319hy 发表于 2024-3-14 10:57
好的,等把基于clangd的语义高亮实现,应该就会有你要的这个功能了。需要做的工作比较多。

对了,还可以加入这样的一个功能,如果按了F9标记了断点,用鼠标点击红色断点按钮一个可以取消或者添加,现在只能通过F9添加或者取消断点
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-14 12:05:08 | 显示全部楼层
2859932063 发表于 2024-3-14 11:34
不太会用啊大佬有空可以教一下吗?在项目中生成的stm32工程,我直接在man.c中##include "stm32h7xx. ...

这是clangd的提示,说你代码里没有用到这个头文件里的内容
偶尔会有些诡异的误报,但大多数情况都没什么问题
你在后面的代码里用一下这个文件引入的变量,函数之类的就不报了

你看多了就知道哪些问题需要解决,哪些问题可以忽略了
如果你喜欢看提示,可以在工程配置里打开clang-tidy的检查,满屏幕都是警告
有些提示上写了auto fix的,你在出错那行按alt+enter,会自动修复
有的时情况下生成的修复代码有问题,但可以做为参考,让你知道是什么样的问题(我已经给llvm提了bug了,但他们一直不解决)

其它用法你可以参考https://www.ed-x.cn/manual.html里的说明。
就是个编辑器而已,我不知道要教些啥啊
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2024-3-14 12:08:31 | 显示全部楼层
scu319hy 发表于 2024-3-14 00:58
可能是我没说清楚,我并不是要设置工具链,因为我不太可能逐个分析它每个board对应的工具链及相关的库, ...

参考一下vscode 中的nRF Connect for VS Code插件,这个插件功能做的很全面,看下这个插件是怎么实现的,
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-14 13:39:06 | 显示全部楼层
zhjr1220 发表于 2024-3-14 12:08
参考一下vscode 中的nRF Connect for VS Code插件,这个插件功能做的很全面,看下这个插件是怎么实现的,

OK,我继续研究
你可以用现在的版本测试一下
如果有什么问题或功能缺失,可以随时提给我
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2024-3-14 14:59:49 | 显示全部楼层
scu319hy 发表于 2024-3-14 13:39
OK,我继续研究
你可以用现在的版本测试一下
如果有什么问题或功能缺失,可以随时提给我

对了,还可以加入这样的一个功能,如果按了F9标记了断点,用鼠标点击红色断点按钮一个可以取消或者添加,现在只能通过F9添加或者取消断点
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-3-14 15:20:59 | 显示全部楼层
膜拜大佬,今天下班回去就试试
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-14 15:35:11 | 显示全部楼层
2859932063 发表于 2024-3-14 14:59
对了,还可以加入这样的一个功能,如果按了F9标记了断点,用鼠标点击红色断点按钮一个可以取消或者添加, ...

没问题。因为用得少,纯粹就是手懒不想写鼠标处理逻辑了
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2024-3-14 21:31:16 | 显示全部楼层
scu319hy 发表于 2024-3-13 03:01
初步添加了对zephyr的支持,如果你的按官方的手册完成了环境配置,这个版本应该能够检测到
还未实现工程 ...

老大,可以先不需要自动检测工具链,提供对话框给用户设置当前使用的工具链和gdbserver端口也是一种解决方式
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-15 03:28:34 | 显示全部楼层
zhjr1220 发表于 2024-3-14 21:31
老大,可以先不需要自动检测工具链,提供对话框给用户设置当前使用的工具链和gdbserver端口也是一种解决 ...

你是说哪一块的逻辑?
针对zephyr的处理完全是用它默认的行为,工具链也是它自动选择的,我只是帮它找了sdk根路径
如果你想使用自定义的工具链,就按它官方的文档设置环境变量即可。
关于debugserver的端口,无论是jlink-gdbserver还是stlink-gdbserver还是pyocd还是openocd都可以设置gdbserver的端口,本来应该是由EDX指定在哪个端口上开debugserver的,但我没有找到在zephyr中怎么设置。现在只能使用openocd的默认端口。
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2024-3-15 09:39:04 | 显示全部楼层
scu319hy 发表于 2024-3-15 03:28
你是说哪一块的逻辑?
针对zephyr的处理完全是用它默认的行为,工具链也是它自动选择的,我只是帮它找了 ...

乐鑫也有一个针对zephyr的vscode插件ESP-IDF,是开源的,可以参考下https://github.com/espressif/vscode-esp-idf-extension
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-15 13:46:00 | 显示全部楼层
zhjr1220 发表于 2024-3-15 09:39
乐鑫也有一个针对zephyr的vscode插件ESP-IDF,是开源的,可以参考下https://github.com/espressif/vscode ...

已经解决设置debugserver端口的问题,并且也可以选择调试服务程序(jlink, openocd, pyocd),但还是没法选择仿真器
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-3-15 13:51:19 | 显示全部楼层
厉害厉害[url][/url]
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2024-3-15 14:13:37 | 显示全部楼层
楼主,能不能开个微信群或QQ群,给使用者交流
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-15 21:19:29 | 显示全部楼层
zhjr1220 发表于 2024-3-15 14:13
楼主,能不能开个微信群或QQ群,给使用者交流

主要是没有太多时间和精力去维护,等以后空点了再弄这个吧
目前有什么建议和需求,在gitee上提可能会更方便一点, https://gitee.com/scu319hy/edx
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2024-3-16 22:51:54 | 显示全部楼层
作者,您好。在PC端写.c控制台程序,怎么设置,默认是.cpp。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2024-3-16 22:53:39 | 显示全部楼层
楼主您好。怎么设置,编译.c文件,默认是.cpp
回复

使用道具 举报

1

主题

39

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-3-17 12:31:37 | 显示全部楼层
minier 发表于 2024-3-16 22:53
楼主您好。怎么设置,编译.c文件,默认是.cpp

你把扩展名改成.c就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 19:29 , Processed in 0.474834 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表