自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 正则表达式的含义

是一种用来匹配和操作字符串的强大工具。它通过一种特殊的语法规则来描述文本模式,可以用于查找、替换、提取特定格式的字符串。元字符有特殊意义,可以用来描述更复杂的匹配模式。普通字符会直接匹配其字面含义。

2024-12-20 14:31:13 561

原创 c语言复制字符串memcpy和strncpy函数区别

这两个函数在功能上有明显差异,导致性能和耗时也不同。因此,在字符串较短且目标缓冲区较大的情况下,

2024-12-09 14:46:58 833

原创 C语言和C++的区别

如果需要高性能、硬件层面控制,如操作系统开发,C语言是首选。如果需要复杂逻辑、大规模应用,C++的面向对象特性更具优势。C++可以看作是对C的扩展和增强,兼具底层控制和高层抽象能力。

2024-12-05 14:28:56 582

原创 C语言中map的用法和其他数据结构的区别

在C语言中,可以用数组、链表、哈希表等结构实现Map功能,根据数据规模和应用场景选择合适的数据结构。与数组和链表相比,Map(特别是哈希表实现)在查找效率上有显著优势,但实现复杂性更高。

2024-11-29 18:03:52 3090

原创 数组下标中运用i++和++i的区别

i++(后置自增):使用i当前的值进行运算,然后i增加 1。++i(前置自增):先将i增加 1,然后使用更新后的值进行运算。i++会访问当前值的索引,而++i会访问自增后的索引。

2024-11-18 17:42:23 473

原创 常见的压缩数据结构

数据结构可以用于压缩,尤其是一些专门设计的压缩数据结构,能够在存储数据时节省空间,或在检索时加速操作。

2024-11-14 14:15:57 400

原创 举例通俗易懂地理解数据结构

想象你在一个游乐场排队,每个人都拉着前面一个人的手。每次要插入或删除一个人(节点)都很方便,但如果想找到一个特定的人,可能需要从第一个人开始数。:想象一个书架上有5本书,按顺序排好,每本书的位置是固定的。链表是一系列节点,每个节点包含数据和指向下一个节点的指针。数组是最简单、最常用的数据结构。栈是一种“后进先出 (LIFO)”的结构,就像一摞盘子,最后放的盘子最先被拿走。队列是一种“先进先出 (FIFO)”的结构,就像排队买票,先到的人先被服务。:像排队买票,最先排队的人最先买到票。

2024-11-14 14:14:27 345

原创 谨慎使用assert的原因

assert的用途assert主要用于开发和调试阶段,用来捕获逻辑错误和开发中的不一致。它应仅用于检查程序员的假设,而不用于处理运行时错误。在生产环境中的使用:一般来说,不建议在生产环境中依赖assert进行错误处理。应采用更健壮的错误处理策略,如返回错误码或使用日志记录错误信息,以确保系统的可靠性和稳定性。最佳实践:在开发阶段充分利用assert检查假设,尽早发现问题;在发布版本中,通过定义NDEBUG禁用assert,并使用其他错误处理机制来替代运行时检查。

2024-11-07 18:14:39 596

原创 C语言代码容错性技巧

容错性设计在嵌入式系统开发中至关重要。通过输入参数验证、错误处理、内存管理、使用看门狗、备份机制、超时处理、以及状态机设计等方法,可以显著提高系统的稳定性和可靠性。这些技巧可以根据具体需求进行调整和实现,以确保系统能够在各种异常情况下安全、稳定运行。

2024-11-07 18:11:53 964

原创 内存优化常用技巧

这些内存管理优化技巧可以帮助嵌入式开发人员更有效地利用有限的资源,确保系统的稳定性和高效运行。不同的优化策略适用于不同的场景,开发人员可以根据系统需求灵活运用。

2024-11-07 17:47:12 1475

原创 booleader的工作原理

Bootloader 的实现可以根据系统的需求变得更加复杂,比如支持多种引导模式(如 USB 升级、串口下载等)或具备更复杂的验证机制(如加密签名验证)。是系统上电或复位时执行的第一个程序,它负责将嵌入式系统的主程序(通常是操作系统或用户应用程序)加载到内存中并启动运行。Bootloader 是嵌入式系统中的一个关键组件,主要用于硬件初始化、加载操作系统镜像、设置运行环境等。假设我们要为一个简单的 ARM Cortex-M 微控制器设计一个 Bootloader,以启动一个用户应用程序。

2024-11-07 14:29:11 696

原创 通熟易懂地讲解GCC和Makefile

(GNU Compiler Collection)是一个强大且常用的编译器套件,支持多种编程语言,比如 C 和 C++。在嵌入式开发中,GCC 可以帮助我们把人类可读的 C/C++ 代码编译成机器可以理解的二进制指令(也就是可以在硬件上运行的程序)。:GCC 工具链可以将C 代码转化为嵌入式设备可以运行的程序,涵盖了从预处理到链接的整个过程。它可以帮你更轻松地管理大型项目,并在代码发生变化时只编译必要的部分。当项目有多个源文件时,手动使用 GCC 命令来编译和链接每个文件会非常繁琐。假设我们有两个源文件。

2024-11-07 14:26:34 412

原创 使用实例讲解RTOS的内核结构、任务调动、资源管理、中断处理

内核结构负责整体控制,确保任务调度和中断处理的有效进行。任务调度确保不同优先级的任务按合适的顺序执行,以保证实时性。资源管理防止任务之间的数据冲突,确保访问库存数据时不发生资源竞争。中断处理能快速响应硬件事件(如投币),保证系统的实时响应能力。模拟一个类似自动售货机的 RTOS 系统,展示任务调度、资源管理和中断处理的基本用法。为了演示 RTOS 概念,我们假设使用了一个简单的 RTOS 库,比如 FreeRTOS。任务调度:定义三个任务:用户输入任务、库存检查任务、显示更新任务。资源管理。

2024-11-05 10:58:05 1156

原创 Linux内核与驱动开发学习

在学习Linux内核模块和驱动开发时,重点会放在。

2024-10-30 17:40:11 1056 1

原创 C语言实现结合回调函数降低状态机圈复杂度

STATE_OFFSTATE_ON和和。

2024-10-17 17:45:56 321

原创 C语言实现状态机跳转模版

下面是一个简化、通用的,你可以根据具体需求扩展使用。

2024-10-17 17:03:18 457

原创 ARM指令集和汇编语言的关联学习

ARM指令集与ARM汇编语言紧密相关,指令集是处理器能够执行的指令的集合,而汇编语言则是人类可读的表示形式。虽然汇编语言是一种低级编程语言,但它使得程序员能够直接控制硬件,并在需要优化性能或功耗的应用中大显身手。

2024-10-16 18:30:47 638

原创 ARM指令集学习

ARM的指令集以精简、高效为特点,结合32位ARM指令、16位Thumb指令和Thumb-2扩展指令,提供了极高的灵活性。对于不同的应用场景,可以根据需求选择合适的指令模式,以达到性能与功耗的最佳平衡。

2024-10-16 18:29:18 677

原创 优化多个if条件嵌套

2.将每个条件执行函数拆成小函数,用函数指针代替函数。1.将重复进行条件判断的结果赋值给标志位变量。

2024-09-27 18:32:25 378

原创 c语言实现查表条件匹配

在 C 语言中,查表匹配是一种常见的优化方式,用于通过查找表(lookup table)快速匹配条件并返回对应的结果。这种方法可以用来代替复杂的if-else或结构,提升执行效率,特别是在处理多条件匹配时。

2024-09-27 10:26:12 681

原创 c语言计算圈复杂度

在 C 语言中,圈复杂度(Cyclomatic Complexity)是衡量代码逻辑复杂度的一种指标。它基于控制流图来计算,表示的是代码中独立路径的数量,即通过代码的不同执行路径数。较高的圈复杂度通常意味着代码难以维护、理解和测试。

2024-09-26 11:40:48 1032 1

原创 C语言优化圈复杂度

在 C 语言中,降低圈复杂度的技巧与其他编程语言相似。

2024-09-26 11:02:23 567

原创 Matlab报错错误使用symengine

错误使用 symengineDimensions do not match.出错 sym/privBinaryOp (line 1022)Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});出错 * (line 317)X = privBinaryOp(A, B, ‘symobj::mtimes’);计算带参数的矩阵相乘时,参数维度未对齐,检查矩阵行列

2022-12-07 12:02:03 6484

原创 QT添加Ginkgo_Driver.lib错误

1.Ginkgo_Driver.lib可以在纬图下载接口库window下选择的库是\Ginkgo_USB-I2C&SPI&CAN_API\lib\msvc_64bit\Ginkgo_Driver.lib2.在.pro中添加LIB报错:(2319个error)情形2右键项目“添加库”,库类型选择“外部库“”,平台选择“windows”,连接选“动态”,不勾选生成debug下.d库报错:-情形3复制\Ginkgo_USB-I2C&SPI&CAN_API\lib\msvc_64bit\Gin

2022-06-09 12:02:05 517

原创 git使用步骤

成功会在对应目录下生成 .ssh文件夹文件夹下有id_rsa和id_rsa.pub,用notepad++打开id_rsa.pub,复制其中内容(类似ssh-rsa AAAAB3Nza开头)粘贴至GitLab,用户—>设置—>SSH密钥4. 配置用户名和邮箱配置完成后可使用一下命令查看...

2022-06-07 17:12:41 192

原创 OpenCV4.1.1+QT5.13+QtCreater4.9.1+MinGW730 在windows10下的环境搭建教程的问题错误

参考https://blog.csdn.net/ltc0106/article/details/100189313?spm=1001.2014.3001.55061.Qt5_DIR未找到Add Entry自己创建path命名为Qt5_DIR2.mingw32-make.exe -j 出错[ 95%] Linking CXX shared library …\bin\libopencv_stitching2410.dll[ 95%] Built target opencv_stitchingmin

2022-05-13 10:06:21 328

原创 DSP开发中对Flash错误操作导致错误“Error -1143 @0x0”

发生错误后不能通过仿真器加载程序,ccxml的test connection能够成功但是连接时仍然会报错,多次断电后重启,没有影响。在TI论坛发现同样的问题https://e2echina.ti.com/support/processors/f/processors-forum/146459/error-connecting-to-the-target-error—1143-0x0解决方法是将Flash的片选CE脚连接到高电平,禁用片选,然后就能通过仿真器加载访问。注意直接使用镊子可能接触不稳定,使

2021-07-23 17:42:06 1351

原创 使用flask,编写HTML表格时,使用for循环遍历输出列表嵌套的字典为表格单元,循环不起作用,只是循环了总数次的零号索引的内容?

获取的列表,元素为名称为file的字典后台输出获取的列表,正确前端显示出错,不循环求求有大佬知道为什么吗?

2021-05-06 14:21:37 670

原创 使用腾讯云服务器(CentOS 6.8 64位)搭建网站——绑定域名

参考https://blog.csdn.net/FelikZhang/article/details/80883902配置web开发环境,可以通过服务器外网地址访问网页。接下来开始设置通过域名访问服务器地址进入cd /usr/local/tomcat7/bin启动Tomcat./startup.sh返回上级目录cd …/进入cd conf然后vi server.xml进行配置修改就可以通过域名访问服务器外网地址了参考https://www.cnblogs.com/ygj0930/p/638

2021-04-26 00:22:12 622

原创 关于使用flask_sqlalchemy创建数据库的问题

无法创建数据库文件结构如下图:在config中配置数据库在exts中引入在app中初始化,运行程序-原因:db.init_app(app)不用app参数,则db的为: <SQLAlchem`y engine=None>解决方法:在之前添加db.app = app数据库创建成功,但无法创建表-原因:在models.dy中设置模块,在app.py没导入模块解决方法: 在app.py中import model...

2021-04-23 00:31:55 269

原创 pycharm中使用Terminal出现 ‘python3‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

在Terminal输入python3 bin\server.py出现 ‘python3’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。查看Python安装路径,是python.exe直接使用python命令成功

2021-04-11 00:41:30 1680

原创 Binary XML file line #19: Error inflating class

在BottomNavigationView下添加导航栏icon后出错,程序停止我是跟着视频教程做的最开始android:icon="@drawable/bookshelf"视频是android:icon="@mipmap/bookshelf"我以为是文件位置出错将drawable下图标资源移动到mipmap再修改代码为android:icon="@mipmap/bookshelf"搜索他人的解决问题方法,大意是drawable下也要放资源文件于是又复制一份图标资源移动到drawable下还

2020-06-10 22:11:23 632

原创 Failed to parse XML in E:\Android\Projects\MyMusicPlayer\app\src\main\AndroidManifest.xml ParseError

Failed to parse XML in E:\Android\Projects\MyMusicPlayer\app\src\main\AndroidManifest.xmlParseError at [row,col]:[5,5]Message: expected start or end tagAffected Modules: app将AndroidStudio升级后重新打开之前版本能运行的工程文件出现错误AndroidManifest.xml文件不能识别注释,删去就行...

2020-06-04 14:04:17 416

原创 Android Studio出现ERROR:Failed to resolve:volley Affected Modules:app

出现错误前执行的操作引入依赖gradle添加volley和gson依赖:implementation ‘com.android.volley:volley:1.1.1’implementation ‘com.google.code.gson:gson:2.8.5’为了避免下载缓慢,使用阿里云仓库替换gradle下载仓库repositories:最后点击Sync now 出现错误解决方法不使用阿里云仓库,成功...

2020-05-26 22:33:06 1519

原创 phpstudy_pro启动mysql后循环停止又重启

phpstudy_pro启动mysql后循环停止又重启。最初判断是与之前安装的mysql冲突,于是把mysql卸载后删除所有相关文件和相关系统变量,重启还是没有解决问题。报错2003。然后卸载phpstudy_pro重新安装,选择一个干净的路径,没有安装过phpstudy_pro的,然后居然成功了。。...

2020-05-15 22:41:41 4130

原创 AndroidStudio使用手机进行模拟,出现Failed to commit install session 902060429 with command cmd package install-

解决方法在手机查看开发者选项里USB模拟点击是否打开,没有就打开就能成功安装了。

2020-05-07 14:32:50 13010

空空如也

空空如也

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

TA关注的人

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