开始接触 STM32 —— Keil μVision 和 Visual Studio 相比太难用啦!

作者:V君 发布于:2019-12-31 10:59 Tuesday 分类:折腾手记

最近开始摸STM32,用 Keil μVision 来编写代码和调试。单片机型号是 F103 用 ST-Link/v2 以 SWD 的方式下载和调试。尽管 Keil 在占据的市场份额不小,但对于我这个被 VS 宠坏了的家伙来说,太难用啦!先列举些槽点,然后再看看有没有代替方案,如果能用 VS 来搞 STM32 开发就好咯……

吐槽:文档页签不能拖动
吐槽:编译、下载、启动调试,似乎不能一气呵成,得分开操作
  但愿是我不知道怎么配置一键,难道大伙们都能忍?
吐槽:智能感知……只能说是聊胜于无吧,尽管默认绑了 F12——
  可以转到定义,但在找到多个重复定义时,你蹦出一个符号窗格给我……
吐槽:项目 wide 搜索,貌似没有像VS那样列出匹配,只能上一个、下一个来导航
  但愿又是默认不启用的功能,只是我不没调出来……

代替方案?起初想到用 VsCode 来编辑代码,然后再回到 Keil 调试,考虑到 C 语言过于依赖环境,多一个少一个符号定义都会发生很大变化,估计 VsCode 的智能感知估计也不会好到哪里去吧……用各种关键字喂咕狗,找到一个叫做 VisualGDB 的扩展,主页上提到可以用来搞 STM32,但目前还没有试试看能不能用……(咕咕咕)后话:剁手买了正版,很香!

月底了,不刷存在感会觉得很方,必须凑合着发点什么出来

标签: 软件开发 嵌入式

评论(2) 引用(0) 浏览(1534)

在树莓派上使用C#实现:通过按钮操作PWM调节LED灯亮度

作者:V君 发布于:2018-10-28 2:45 Sunday 分类:折腾手记

TLDR:

源代码:SVNGit

依赖库:WiringPi


操作步骤:

0)树莓派上需要安装好mono软件包并启动远程调试器

1)从依赖库官网下载源码包并在树莓派上通过自带的构建脚本进行安装;

2)引出第18pin(只有这pin支持PWM),经过330欧姆电阻接到LED灯,另一边回到负极。

3)再引出两个GPIO(源代码里是17和27)经过同样的电阻接按钮,另一边回到3.3v正极。

4)在VS里打开源代码,连接到树莓派上启动调试。

此时LED灯会亮起来,并能够通过两个按钮调节亮度


原来LED亮度是用PWM的占空比来控制的,学到新姿势了 乂目

标签: 软件开发 树莓派 C# 嵌入式

评论(0) 引用(0) 浏览(1266)

在VS15上远程调试Mono应用程序:原来还有这么舒服的姿势!

作者:V君 发布于:2018-10-27 22:48 Saturday 分类:折腾手记

小试一把确认可行之后就来写博文了,稍后再扯,先TLDR:

关键字「mono remote debug」喂狗,吐出「MonoRemoteDebugger」插件。

顺着介绍导航到其GitHub仓库看用法

0)目标机器需要先安装Mono的软件包,这次用的是「mono-devel」
1)下载预编译版本zip到目标机器,解包执行,进入等待状态。
2)在VS里装好插件,新建一个控制台项目,
  点击菜单「
MonoRemoteDebugger -> Debug with Mono (remote)
  在弹出的对话框输入目标机器IP,点击连接按钮。
3)当前应用程序会自动推送到目标机器并以调试模式启动,
  如果在主线程设置断点,将会在断点处停下来,此时可以查看变量值。

需要注意的是Mono调试器并没有原生的那么强大,做不到编辑并继续的体验。
受到远程调试器完善程度的影响,目前还不支持用户线程断点。

不过没关系能打断点看变量值已经很奢侈啦!

进入闲话时间

还记得之前为了调试树莓派GPIO所做的C/S远程控制接口吗?
最近忽然想玩PWM,想试着用它来控制LED灯的亮度。
首先想到的是树莓派自带的Remote gpio功能,然而资料并不多,只能找到py的,没有C#的。
之后换了个想法,如果能直接在上面跑调试那该多好。
虽然知道可以在上面直接安装MonoDevelop来调试,但这货太过于臃肿。
又试着去咕狗看看,结果就找到这货啦!


标签: 软件开发 树莓派 C# 嵌入式 调试技术

评论(0) 引用(0) 浏览(1385)

在CM311移动热点上运行.NET应用程序(mono)

作者:V君 发布于:2018-7-25 19:06 Wednesday 分类:折腾手记

TL;DR 

去软件仓库 (这里) 找主程序和托管核心类库

比如 mono-runtime-sgen_4.8.0.520-0xamarin3_armel.deb

 和 libmono-corlib4.5-cil_4.8.0.520-0xamarin3_all.deb

下载下来用7-zip提取主体

主程序随便放, 把托管库放到 /usr/lib/mono/4.5/ 或目录符号连接到任意地方

赋予执行权限, 即可执行[./mono-sgen ConsoleApp1.exe]. 按提示找缺少的托管库.


需要注意的是CM311跑不了5.x版本以上的mono, 提示libc6丢失. 

要补上估计不容易, 而且存储空间可能也不允许

 

今天没时间扯了,下次有空再扯

标签: C# linux 嵌入式 mono

评论(0) 引用(0) 浏览(961)

在CM311移动热点上将telnet服务设为自启动

作者:V君 发布于:2018-7-25 14:53 Wednesday 分类:折腾手记

TL;DR

1)先通过TTL控制台做实验, 执行[telnetd -b 0.0.0.0]然后从USB或WIFI尝试连接.

2)第个一步骤成功之后找到 /etc/init.d/rcS 用 vi 编辑

 在最后一行前加上启动 telnetd 的命令[/sbin/telnetd -b 0.0.0.0]

3)拿掉TTL,合上盖子,重启. 在PC上用PuTTY之类的终端连上去.


听我扯扯:

在TTL控制台终端操作实在是太折磨人,命令行打到一半总会被输出打断.

就找法子让终端可以走通过C/S方式连上.

最开始的时候凭经验用rc.local,然并卵, 可能是嵌入式linux的缘故

rc.local不工作, 咕狗解决方法顺着线索找到 rc?.d 问号是表示运行级别的数字

选了级别3,在里面创建了脚本, 然而也不管用.


最后用busybox telnetd作为关键字总算找到了 /etc/init.d/rcS 成功实现自启动.

接下来可以定一个小目标比如让mono进来 乂目


看来咱对linux的了解依然是冰山一角的一角,连rc.local和rcS都搞不清楚 _(:з」∠)_

嘛! 反正能捣腾起来就好 (´∀((☆ミつ

 

标签: linux 嵌入式 busybox telnet

评论(0) 引用(0) 浏览(836)

Powered by emlog 去你妹的备案 sitemap