- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 基于 Clang 的 C++ UML 图生成器
是一个自动化的 C++ 到 UML 类、序列、包和包含图生成器,由 YAML 配置文件驱动。首先,确保你已经安装了必要的依赖,包括 Clang 和 LibTooling。进入工程目录,执行clang-uml命令后会在当前目录下生成SimpleFactory_class.puml文件;的配置文件定义了每个生成图表的类型和内容。默认情况下,clang-uml。我的项目因为是cmake工程,所以可以在CMake增加。要分析C++代码,需要在你的工程目录下面有两个文件。的功能,请查看为单元测试用例生成的图表。
2024-09-21 13:58:50
1264
原创 Ubuntu 安装使用 CppCheck
下次编译的时候会自动使用cppCheck工具检查代码,并且在源码目录下找到检查日志:“cppcheck-logs” folders。安装“sudo apt install cppcheck”或下载编译。
2024-04-02 14:52:56
549
转载 Uboot命令行介绍
最新的uboot命令行已经发展得比较完善,很大程度上接近shell,包含了各种基本的驱动和完整的工具。这些工具的源码大多在u-boot/cmd下,查看Makefile可以看到,根据不同的配置编译出很多命令,你也可以通过搜索字符串来查找这些命令的命名。这些命令的列表可以通过命令行输入help来查看,大致分成几个大类。
2023-03-02 13:53:34
1115
原创 STM32MP15x TF-A移植
内存的修改使用STM32CubeMX生成的设备树,打开STM32CubeMX,新建一个STM32MP157A-DK1开发板的一个工程,点击System view找到DDR单击,目标板是两个16位组成32位所以选择位宽32bits,选择大小4Gb,点击Project Manager选择项目存储位置,然后生成代码。这里直接附上修改好的代码。我们的ddr3是256Mbytes, 开发板DK2是512Mbytes。根据所参考的官方开发板创建自己开发板的设备树文件。将PC10改为PE6。
2023-02-27 16:51:20
337
转载 寻找并删除 Git 记录中的大文件
近期要将git仓库迁移到github中,结果因为记录中包含大文件导致无法上传代码,所以本文来介绍查找和重写 Git 记录的命令:git rev-list, git filter-branch,用来找出大文件并且删除大文件。首先通过rev-list然后通过。
2023-01-12 10:53:56
847
1
原创 一个git clione失败问题
我最初的目的是想通过Window的git命令将代码直接下载到Ubuntu中, 这样就可以通过Window编写代码, 然后在Ubuntu中交叉编译成ARM程序。起初怀疑是远程仓库出问题了,但是经过验证,直接将代码clone到c盘是ok的,这说明不是仓库的问题,而是映射的网盘有问题。具体做法就是在Ubuntu中安装Samba服务,然后在Windows中映射一个指向Ubuntu主机的网络硬盘。工程目录下没代码,重新git fetch,git pull都没用。
2023-01-09 18:37:00
114
转载 Linux kernel Map
要把其中的每一块儿都弄明白很不容易,不过 MakeLinux 做了一个非常酷的完整的内核交互图,上面非常清晰地标注了每一个组件部分及之间的关系。这张 Linux 内核交互图可以帮助你不用一一细读 Linux 内核代码,就能弄明白各个内核子系统间复杂的内部联系。如果你希望学习内核知识,在网上可以搜到无数的资料,但是 Linux 内核还是一个非常难弄明白的项目。俗话说:一图胜千言,今天我们就为大家介绍一张完整的 Linux 内核运行原理图,通过这张图,你可以很方便地学习内核知识。
2023-01-05 17:11:35
425
转载 创建公钥/私钥对
如果您尝试使用过期证书创建或更新设备,或者尝试将设备连接到注册表并且注册表的证书已过期,则 Cloud IoT Core 将返回错误。如果您尝试使用过期证书创建或更新设备,或者尝试将设备连接到注册表并且注册表的证书已过期,则 Cloud IoT Core 将返回错误。您可以将 -subj 参数替换为实际的证书主题并使用该证书,也可以省略 -subj 并在系统提示时提供证书信息。您可以将 -subj 参数替换为实际证书主题并使用该证书,也可以省略 -subj 并在出现提示时提供证书信息。
2022-11-17 16:57:26
1707
转载 【FreeRTOS 三类RAM分析方法】
三分钟搞定内存溢出来源:恩智浦MCU加油站发布时间:2022-01-20今天我来讲一讲MCU开发中的一个棘手问题——内存溢出,希望能帮到遇到该问题的同学们。开发环境SDK版本:SDK_2_6_13_FRDM-KW38SDK下载地址:https://mcuxpresso.nxp.com开发板:FRDM-KW38IDE:IAR EmbeddedWorkbench for Arm version 8.50演示代码:https://github.com/N40E116/SD.
2022-05-31 14:54:07
685
原创 C++问题总结
在对象声明中使用=号,调用的是拷贝构造函数;objA=objB;先声明objA,再对其复制,调用的是重载的=复制操作。但"=“的缺省操作只是将成员变量的值相应复制。由于对象内包含指针,将造成不良后果:指针的值被丢弃了,但指针指向的内容并未释放。指针的值被复制了,但指针所指内容并未被复制。因此,包含动态分配成员的类除提供拷贝构造函数外,还应该考虑重载”="赋值操作符号。因为系统会默认一个浅拷贝构造函数,如果不使用的话就将其声明成私有的,这样外部调用时编译器会报错。
2019-04-25 16:29:55
115
1
原创 检测内存泄漏
记录内存使用情况的脚本:while [ 1 ]; do date >>log.txt;free >> log.txt;sleep 5; done;每隔五秒钟记录一次内存使用情况和相应的时间记录结果的处理: 原始数据Fri Jan 20 03:20:50 CST 2006 total use...
2019-03-27 15:35:00
97
原创 我的shell命令集锦
记录我用过的比较复杂或者有用的shell脚本/命令 :向文件里面循环插入特定字符: :awk -v RS="ShowPrecision" '{n+=1;printf $0"ExpOid=\&
2019-03-25 10:55:03
238
原创 TI-RTOS:SNMPV3实现
关于SNMPv3的实现原理可以参考下面链接: https://blog.youkuaiyun.com/wzsy/article/details/70805142将net-snmp移植到linux中时很顺利,没遇到什么困难,but 现在项目需要在ti-rtos中实现SNMPv3 经过考虑决定使用lwIP来实现,这其中遇到了一些问题。 首先要说明的是SNMPv2已经调试ok了。问题一: 关于上面链接...
2018-09-06 16:30:13
2092
1
原创 CCS:Type region `APP_CODE_MEM' overflowed by 641240 b
遇到问题随着代码的不断增加,突然有一天编译出错却并不是语法错误: 分析问题看起来像是代码段空间不足造成的,之前编译成功后生成的.out文件大小在1.5M左右,这次新增加了两个开源库lwIP和mbedtls就出现预分配空间不足的问题了,但是我找遍了CCS所有配置都没有找到APP_CODE_MEM在哪里赋值的。 于是我查看了CCS生成的.cmd文件:MEMORY{ ...
2018-08-13 16:32:39
721
原创 TI-RTOS的锁设计
锁的接口设计(C++实现),目的1:实现APP跟OS锁隔离;目的2:通过构造函数上锁和析构函数释放锁, 函数出栈时候自动释放,可以防止忘记漏释放锁。
2018-06-19 14:56:47
1275
原创 SYSBIOS Seconds Module调试笔记
最近在调试一个项目,环境是SYSBIOS+AM335x。而Seconds模块就是系统时间模块,包括显示系统时间,设置系统时间等等,内部实现是重写标准C的API,接口都一样比较容易实现,如下是官方例程:cfg文件中使能Seconds模块:var Seconds = xdc.useModule('ti.sysbios.hal.Seconds');代码:#include <...
2018-03-07 15:24:41
124
1
原创 AM335x定时器配置
1. AM335x定时器配置相关寄存器:参考Ti的AM335x手册179页 2. Sysbios库增加对timer的初始化Timer0和Timer1被sysbios使用,所以API没有提供对应的接口。这里我们主要对Timer2~7的初始化。 首先是时钟源的选择,可选有32KHZ的内部振荡器时钟,24MHZ的晶振时钟,以及外部时钟。 初始化的定
2018-01-24 20:17:36
606
转载 snmp.c源码
在项目中不小心注释掉了一段代码,导致一个严重的bug出现了,花了好几天才找出来,这里记录一下源码。/* * snmpd.c *//** @defgroup agent The Net-SNMP agent * The snmp agent responds to SNMP queries from management stations *//* Portions of this fil
2017-06-15 23:14:47
1132
原创 net-snmp配置
1. list 全局配置 SNMP Version V2/V3 SNMP Port : 整形数(默认161) Trap Port : 整形数(默认162) SNMP V2 配置 (多组) NMS IP : IP地址 Access Type : Read/Read-Wr
2017-06-09 15:02:08
770
转载 jffs2,yaffs2,logfs,ubifs文件系统性能分析
http://blog.youkuaiyun.com/iceiilin/article/details/22721029防止连接失效,复制如下:在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。那么对于这几个文件系统,如何
2017-03-22 11:26:49
1461
原创 SSH自动登陆服务器--ARM linux
因为需要用到ssh自动登陆到远程服务器并执行相关命令,但是ssh不支持重定向和管道方式,所以只能使用expect,这里我使用的是ARM9的平台所以需要移植expect:由于expect是基于tcl语言的,所以移植expect前,需先交叉编译tcl 1、下载地址 tcl:http://www.tcl.tk/software/tcltk/download.html expect:http://s
2017-03-06 10:45:12
483
原创 数据库MySQL
SQL学习网:http://www.runoob.com/mysql/mysql-select-query.html 启动之后添加密码:/usr/local/mysql/bin/mysqladmin -u rootpassword 'new-password'/usr/local/mysql/bin/mysqladmin -u root -hSNMP-System passwo
2017-02-28 17:26:27
288
原创 Web开发--上传文件
最近有个项目要求做到通过web方式在线更新一款嵌入式(snmp agent)设备的应用程序。所以做了以下调试,然后权衡利弊后选择第三种方害死这里介绍三种方式实现web上传文件:*1. 使用插件* 下面这个连接介绍了十种插件。但是由于官方下载的插件例子都是php作为后台处理脚本,我做的嵌入式应该是不支持PHP的,只能支持C和shell。 http://www.chinaz.com/free/201
2016-12-26 10:31:56
711
原创 Curl移植笔记
移植版本curl-7.47.1: 1. 配置环境变量 ~/.bashrc_arm export ARCH=arm export CROSS_COMPILE=arm-none-linux-gnueabi- export CC=arm-none-linux-gnueabi-gcc export CXX=arm-none-
2016-12-16 10:41:29
640
原创 第一篇 Web开发
先记录一下以前做的web界面,这里只展示一个简单的画面。 嵌入式web开发。 .tdright{border-style:solid; border-width:initial; border-color: #cfd6d1; border-left:none;border-top:none;border-bottom:none;padding:4px;} .tdleft{border
2016-12-12 11:45:30
367
Buildroot编译ST工程
2023-09-08
Azure IoT +ST Demo 开发资料
2022-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人