自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

原创 TI RM57 如何使用DMA进行串口接收

RM57 DMA触发串口接收代码实现和概念解析。

2023-04-01 18:17:01 578

原创 TI RM57 如何配置RTI作为定时器使用

配置RM57的RTI作为实时时钟使用,供性能测算使用。

2022-12-08 11:06:12 691

原创 TI RM57 开发板 TMDXRM57LHDK SDRAM配置探坑

RM57MCU搭载SDRAM芯片IS42S16400F-7BL,如果SDRAM配置错误,会导致在系统初始化阶段,就触发DataAbort异常,或程序跑起来一段时间就触发DataAbort异常。

2022-09-28 12:49:39 333

原创 VSCODE也可以进行gtest细粒度测试

VSCODE 也支持gtest的细粒度测试,你会用吗?

2021-11-30 22:32:57 2826 10

原创 基于eclipse的IDE在调试嵌入式C++程序时,查看std::map等容器元素方法

基于eclipse的IDE在调试嵌入式C++程序时,查看std::map等容器元素方法谢谢关注

2021-01-17 21:54:36 777 1

原创 gcc交叉编译时设置了“--sysroot“会产生哪些影响

gcc交叉编译时设置了"–sysroot"会产生哪些影响文章目录gcc交叉编译时设置了"--sysroot"会产生哪些影响gcc选项`--sysroot`对`-I`的影响gcc选项`--sysroot`对`-L`的影响使用CMAKE进行交叉编译时的建议1. CMAKE设置`--sysroot`通过`CMAKE_SYSROOT()`配置2. CMAKE中用来添加头文件搜索路径的宏`INCLUDE_DIRECTORIES() `并不会受到`--sysroot`选项影响3. 解决链接时无法找到动态库依赖嵌套问

2020-12-02 16:24:22 18111

原创 彻底解决win10 docker desktop镜像过大导致“C盘存储空间不足”的问题。

彻底解决win10 docker desktop镜像过大导致“C盘存储空间不足”的问题。win10安装docker只需要双击安装包,真正实现了傻瓜式安装,这一点真的十分方便!不过用了义端时间docker后,突然有一天我注意到C盘原本充裕的空间容量,不知怎么的,变成了红色,并伴随着系统告警:”C盘存储空间不足,请释放存储空间“。经过一番排查发现,这一切竟然是docker desktop创建的镜像引起的这个镜像是给hyper-V使用的,其大小已然超过了30G。由于Docker是基于linux内核的,

2020-11-30 17:40:21 19547 2

原创 基于docker搭建tx2的ROS2交叉编译环境

基于docker搭建TX2的ROS2交叉编译环境概述ROS2官方文档有交叉编译相关说明。本文使用TX2最新官方镜像JetPack4.4版本,自带ubuntu18.04。有现成的ubuntu18.04就可以使用apt-get install安装预编译的ROS2,从而避免从ROS2源代码安装可能引入的折腾。ROS2在ubuntu18.04支持的版本有两个:dashing和eloquent。这里选择安装dashing,具体参照官方安装指引Installing ROS 2 via Debian Package

2020-11-27 11:12:30 3142 3

原创 使用ROS2的一些命名规则

使用ROS2的一些命名规则这里是基于ubuntu18.04下的ROS2 发布版 ros-dashing进行讨论的。ROS2开发中可以发现大量的坑,很多坑本应在官方文档有介绍,可是并没有发现,唯有在各个stackoverflow等帖子中可略微显露些许线索。为了方便自己和他人,故此处针对ROS2命名规则相关问题进行记录。规则1:包名必须全部小写规则2:自定义的MSG,SRV和Action文件必须首字母大写持续更新,谢谢关注!...

2020-11-27 10:42:20 1774 5

原创 ros2 nav2 行为树插件引擎原理和应用

Nav2 行为树插件引擎原理和应用本文由一个简单的例子作为切入点,对Nav2行为树插件引擎的原理进行分析。文章目录Nav2 行为树插件引擎原理和应用一个完整应用demoGroot行为树设计和监视器安装使用Groot实时监视行为树行为树运行库行为树插件引擎自定义action包自定义Ros action行为树action叶节点插件ROS2 action服务节点行为树action与ROS2 action相结合实现功能和逻辑的解耦一个完整应用demo一个完整的应用demo包含以下工程和工具Groot行为

2020-11-26 15:53:17 2689 3

原创 BehaviorTree.CPP v3从动态库加载叶节点

BehaviorTree.CPP v3从动态库加载叶节点文章目录BehaviorTree.CPP v3从动态库加载叶节点问题汇总找不到生成的包含叶节点的动态库无法定位其他第三方依赖库的符号问题汇总找不到生成的包含叶节点的动态库terminate called after throwing an instance of 'BT::RuntimeError' what(): could not load library: libWaitActionBtNode.so: cannot open sha

2020-11-23 11:12:00 1129 1

原创 ROS2交叉编译时找不到PythonLibs “Could not find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)“

ROS2交叉编译时找不到PythonLibs “Could not find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)”问题原因“Could not find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)”这个问题之所以出现是因为没有在默认的路径下找到libpython3.6m.so。还有${TX2_ROOTFS}/usr/include/python3

2020-11-19 09:46:53 1010 1

原创 解决交叉编译连接器包含-ldl编译选项,但仍然报错undefined reference to ‘__dlsym‘

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-11-15 20:38:56 2880

原创 CLion 交叉编译 “iostream is not found“ 无法解析标准库头文件问题的优雅解决方法

CLion 交叉编译 “iostream is not found” 无法解析标准库头文件问题的优雅解决方法摘要CLion本身对CMake有着强大的支持,这一切支持的背后,都依赖着符号的索引以及头文件的查找。对于交叉编译的开发情景,CLion的默认设置显然不能满足需求,一旦配置不到位,那么就会面临"iostream is not found","vector is not found"等标准C++头文件找不到的问题。本文介绍了如何优雅的解决此类问题的方法。如果喜欢或有不足之处,欢迎评论。目录CLio

2020-10-16 10:35:17 7587 2

原创 拖拉机控制关键协议 ISO-11783 协议解析

快速开始应用层关注的主要内容是如何读写数据,对于ISOBUS,读写数据,即是如何控制车辆动作和获取车辆信息。ISOBUS的实现读写数据的机制是“消息”。一切皆为消息(message)。一般的,每个消息的核心为一个参数组(parametergroup),参数组主要分为几类:指令类、数据类和辅助类。指令类:可以被执行,如控制开关、控制转向。数据类:用来读取和写入的关键数据,如传感器值,组件ID等。辅助类:辅助完成请求数据,应答数据、广播声明、分包传输管理等功能。具体通讯的细节请参照后续.

2020-10-13 14:38:15 5476

原创 使用eclipse 阅读和编辑stm32工程

基于MDK和eclipse 开发stm32工程已经用eclipse开发stm32工程很久了,作为替代MDK自带编辑器的工具,ecpise具有十分强大的代码编写和代码查看能力。支持vim 方式编辑代码,保证极高的编辑效率支持查看函数调栈,在不需要编译代码和调试的情况下,你就可以找到此函数被谁调用以及调用此函数的函数又被谁调用,以此类推。帮助你阅读代码和分析代码。根据变量名所在作用域,快速重命名。当你在一个函数范围内创建了一个与全局变量同名的 变量,当你对其进行重命名时,不会对全局的同名变量造成影响。

2020-09-30 19:49:23 518

原创 Ubuntu18.04 使用Clion在docker中开发ROS kinetic(Ubuntu1604)问题记录

背景介绍公司项目需要使用到ROS kinetic,这个版本的ROS只有在Ubuntu16.04,而我的Ubuntu版本是18.04。前后试过多种方法,1. apt-get install ros-desktop-full=kinetic的方式不行E: Version 'kinetic' for 'ros-desktop-full' was not found2. 在Ubunt...

2020-09-30 18:38:09 1356 2

原创 STM32MP157系列编译和烧录自定义的bootloader、linux内核及其设备树

STMP1系列移植u-boot和定制内核目录)STMP1系列移植u-boot和定制内核基本流程编译开发板提供的内核源码烧录内核基本流程编译开发板提供的内核源码tf-a,uboot,linux-kernel烧录内核注意:如果想保持原来的分区,则在想保持的分区的option为"PE"...

2020-09-23 17:12:33 2960

原创 STM32MP1系列Cortex-M4内核开发和调试

STM32MP1系列Cortex-M4内核开发STM32CubeIDE开发环境搭建从官网下载最新的STM32CubeIDE开发环境安装MP1系列固件包的时候出现错误(target directory already exists)打开IDE,设置一个工作空间,按照默认的即可。进入IDE显示如下界面创建一个STM32MP157A的演示工程鼠标右键ProjectExplorer 区域,新建一个带CubeMx的工程。芯片选择STM32MP157A最后输入一个工程名, 并完成创建

2020-09-17 11:51:30 2828

原创 基于CONAN和Azure Devops的持续集成——第一部分

基于CONAN的持续集成使用CONAN管理你的包在任意路径中创建一个新的conan包管理文件admin@52ce76b040b0:~/conan/bgy_ar_config$conan new bgy_ar_configFile saved: conanfile.py此时创建一个conanfile.py在执行conan new 指令的当前路径中。然后根据所要创建包,修改新创建的conanfile.py从代码构建包 def build(self): cmake = CMake(

2020-07-01 15:43:23 278

原创 基于docker和Clion 的Windows Ros-kinetic 开发环境

基于docker和Clion 的Windows Ros-kinetic 开发环境本文docker拉取的镜像仓库,是本地私有搭建的镜像仓库,搭建docker仓库的方法参见docker regitry本文拉取的docker镜像'ros-agent' 是基于ubuntu:16.04镜像制作的包含ros开发环境的docker镜像。具体用户可以根据自身情况自行制作有没有觉得基于vmware虚拟机开发ROS很卡?有没有觉得vmware虚拟机开发ROS镜像太庞大,镜像分享困难?有没有觉得双系统u.

2020-06-30 17:34:15 1030

原创 Conan——C++包管理工具——使用踩坑记录

创建一个包的最简步骤1. conan new 生成一个conanfile.py2. 编辑conanfile.py3. conan create --prefile=xxx directory or reference了解Conan的本地仓库当执行$conan new task_control/v1.0.0$conan create --profile=default . test/test之后,会在本地目录自动生成这个目录~/.conan/data/task_contr

2020-06-12 20:47:16 4802

原创 理解Nexus 匿名登陆, 解决Nexus 搭建的docker hub 私有服务器,不能匿名访问的问题

理解Nexus 匿名登陆, 解决Nexus 搭建的docker hub 私有服务器,不能匿名访问的问题问题:使用Nexus搭建了一个docker私有仓库推送拉取镜像的时候用的是admin,都没有问题,但是今天同事反映没有办法拉取镜像,经过检查发现,Nexus默认要登陆账号授权才可以拉取镜像。$ docker pull ros-kineticUsing default tag: latestError response from daemon: unauthorized: authent

2020-06-01 16:15:22 3711

原创 解决ROS订阅话题无法收到数据

背景介绍最近在做一个项目,需要用到消息总线,而ROS是一种适用比较广泛的消息总线,使用起来也比较方便。虽然暂时决定使用ROS作为进程间通讯的工具,但不排除后期由于项目迁移等其他因素导致替换其他进程通讯库,如cyber,ROS2。为了方便迁移,将ROS通讯相关的所有代码进行一次抽象。class RosVelocityTopic : public VelocityTopic{pu...

2020-04-22 19:52:31 10673

原创 使用linaro gcc-5.4.1为tx2-ubuntu16.04 交叉编译STLPort库报错:[...no member named ‘__tm_gmtoff’]的解决办法

由于需要交叉编译的Poco库依赖stlport库,所以从STLPort的官方下载了一份最新的源代码[5.2.1]准备交叉编译到TX2环境。拿到源代码后感觉很不爽,STLPort并不支持cmake和autotools, 映入眼帘的是一个configure 可执行脚本,运行一下帮助看看是否支持交叉编译工具配置:$ ./configure --helpConfiguration ut...

2020-01-09 09:40:04 993

原创 近期项目失利反思

半年前参加了一个项目组,这个项目的成败将会深刻影响公司的发展方向,因此备受关注。然而,该项目却一再的延期,超时至今已有4个月左右,中间加班无数,1月中旬到3月中旬,平均每天工作14小时,有数个夜晚直接住宿到单位,有数天是次日凌晨才下班。如此的加班最终换来的却是产品在展会上表现不良,功能不稳定,市场部对该项目彻底失去信心。发这个文章目的不是抱怨,而是反思原因,以避免下一次重蹈覆辙。那么问题出在哪里?...

2018-04-21 09:50:46 706

原创 听到身边程序员说“这个代码之前写好了,现在把界面改成这样很麻烦”有感

听到身边程序员这样抱怨:“这个代码之前写好了,现在把界面改成这样很麻烦“。这不是第一次了,包括以前的我也是如此。这引起了我的思考,程序员到底应该怎么写程序。最开始写代码的时候,我只关注如何实现一个功能,自己对于开发的理解也很简单,就是一个无论多么复杂的程序,只要老老实实的把if/else 的逻辑判断全部捋清楚了,就能写好。后来事实证明,这样的思想是极其幼稚的。我们在开发之初,很难预料到,后期维护的...

2018-04-21 07:53:54 1029

原创 有符号整数除以无符号整数会发生什么??!!!

今天遇到一个问题,先还原一下场景:开始时,使用32位有符号数作被除数,16位无符号数做除数,计算结果正确;然而,将除数换为32位无符号数则出现异常。代码如下#include #include int main(void){ int32_t a=-0x1000; uint16_t b=0x50; uint32_t c=0x50; float result; result

2017-04-21 22:07:42 5955

原创 纠正《Effective C++(第三版)》侯捷译 中文版中,第31条款中原文“最后,不论Handle classes或Interface classes,一旦脱离inline函数都无法...”的误译

感谢slimzhao的博文消除了我的迷惑,博文原文地址为http://blog.chinaunix.net/uid-53564-id-3259704.html我在读Effective C++ 中文版的第31条,倒数第二段的原文——“最后,不论Handle classes或Interface classes,一旦脱离inline函数都无法有太大作为。”——始终无法理解,为什么Hand

2015-12-26 10:49:52 1054 6

原创 Eclipse 中的多线程编译——如何成倍提升Gcc编译器的编译速度

Eclipse设置多线程编译选项可以使工程的编译效率大大提升。

2015-10-07 14:40:40 3939

原创 GNU/GCC/G++ 编译/链接生成的常见段(section)表

自建开发平台最令人头疼的莫过于处理链接器产生的大量错误。其中难免接触到段。本文列出了大多出可以碰到的标准段名及其定义,希望可以给你带来帮助。

2015-09-17 11:44:59 7198

原创 STC单片机使用RS485下载程序方法

使用485线直接进行STC程序下载

2015-09-07 21:52:35 12606 2

原创 C/C++预处理指令#define 之##连接符的用法

本文结合项目实例进行了##连接符用法剖析。关于C风格的预处理符号定义#define 的用法,很多人已经非常熟悉,我也很乐于使用一个容易记忆的宏定义,代替记忆一串数字。#define PIE (3.14159265358979323846264338327950288419716939937510582097494459230781640628620899)在定义这一宏后,程

2014-12-30 14:23:15 1426

原创 使用DOXYGEN风格注释

什么是DoxyGen :这是一款可以根据约定好的注释,自动生成说明文档的软件(插件)。此软件(插件)完全免费。为什么选择DoxyGen: 源代码编写者,仅需要简单的了解了DOXYGen的注释风格,既可以自动生成相应的代码注释文档,这有助于代码共享,同样的,也会对程序员形成一种规范的代码注释风格起到良好的影响。

2014-12-30 09:42:01 3512

cmake-3.18.4-Linux-x86_64.sh

cmake 最新稳定发布版3.18.4 for linux-x86_64。该安装包挂在github上,很多时候没有下载速度,故此处分流下载。

2020-11-09

WorkerManager 1.0.0

你的车间规模不大,还不足以购买一套商业级ERP系统吗? 你还在使用excel进行车间工人管理吗?你还在因剪切粘贴丢失工人记录而烦恼吗? 这里一款开源免费的车间工人管理软件, 代码连接https://gitee.com/flvd/resource-manager 欢迎联系作者[email protected]

2020-10-08

SDI12单总线数据收发代码

当前国外传感器较为流行的SDI12单总线数据通讯协议,由于没有硬件解码,而且收发数据全部都是通过1条数据线完成,所以开发起来难度较大。 本代码,笔者历经1个月的时间完成,使用的处理器为AVR 开发平台是atmelstudio6,整个调试实为不易。 此压缩包中包含了以下内容: 1.SDI12端口驱动源代码 2.HTML格式的源代码说明文档 注: 1.此工程为静态链接库工程,没有main入口函数; 2.工程中引用了Container容器库工程以及SLEEP库工程,此工程笔者会一并上传。 2.此工程通过SDI-12.h头文件进行相关设置; 2.为了方便维护,作者已经将数据打包成了一个抽象数据类型,使用函数,尽量通过SDI12数据类型调用而非直接调用。

2014-12-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除