![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 67
用户昵称100
本人正在寻找其他平台,敬请期待。
展开
-
C/C++编程-功能实践-bootloader
然后这些除了bin或者hex是最后的编译二进制文件以为,其他的信息输出文件,不是真正的编译过程。在编译过程种,数据的具体值信息,编译器不作信息输出,只有通过真正的编译过程文件查看,比如二进制文件、.o文件。xxxx\xxxx.axf 是指定路径下的指定axf文件,此文件作为输入文件,是keil编译后产生的;xxxx\xxxx.axf 是指定路径下的指定axf文件,此文件作为输入文件,是keil编译后产生的。显示.o文件中的所有段,即查看段表。查看.o文件的文件头详细信息。查看.o文件中各个段所占大小。原创 2023-03-14 19:32:47 · 150 阅读 · 0 评论 -
C/C++编程-TCP/IP协议-LwIP学习手札
LwIP学习原创 2023-01-13 11:54:05 · 290 阅读 · 0 评论 -
C/C++编程-理论学习-考鼎录<子驱动程序>
子驱动程序进一步考虑正确区分机制和策略MINIGUI中的逻辑字体/* STDIO接口的实现 */struct _file_obj;typedef struct _file_obj file_obj;struct _file_ops { file_obj *open(void *pathname_buf, size_t size, const char xx); ssize_t read(file_obj *file, void *buf, size_t count); ssize_t wri原创 2022-05-03 19:08:16 · 936 阅读 · 0 评论 -
C/C++编程-理论学习-考鼎录<解耦代码和数据>
解耦代码和数据解耦代码和数据的重要性手段解耦代码和数据的重要性好处:分开维护数据和代码(可维护性)增加新的错误码,不需要修改代码(可维护性)简化代码结构(代码质量)提高执行效率(代码质量)坏处不太直观,降低可读性结论:好代码是多次重构出来的!注:工程师-发现问题,解决问题。设计东西。手段使用数组、枚举、宏定义等手段抽离、维护数据。(也可以索引值用枚举,字符串常量数据采用数组维护,数据也再次进行一次拆分)为避免手误,或者程序、数据分离造成的两处更改不一致问题,使用编原创 2022-05-02 18:29:13 · 826 阅读 · 0 评论 -
C/C++编程-分层模块化-数据交互
模块间的数据交互实习方式方式选择优缺点说明关于变量 zchs_protocol vince pipe grab 对于zchs_protocol协议模块和下面的三个运动部件模块之间的交互问题。实习方式变量无系统:跨模块的全局变量有系统:信号量等函数接口方式选择优缺点说明关于变量无系统例如,在zchs_protocol中定义serial_send_state:0没有数据发送,1有数据发送。需要分别在三个运动部件模块中分别置位此标志变量,然后在z原创 2021-12-14 18:41:52 · 2084 阅读 · 0 评论 -
C/C++编程-工程实践-编程规范
编程规范变量对象类型封装接口文件变量auto全局变量 type g_xxx_xxx 跨文件引用,作用于整个工程 多用来表示状态,标志位等。static全局变量 type xxx_xxx 文件内引用,作用于模块,多用于模块内的关键数据,模块主体作用对象。auto局部变量 type xxx_xxx 函数内部引用,内生临时性,二次解释。static局部变量 ,,,,,大家懂得。对象类型封装接口文件...原创 2021-12-09 10:18:34 · 394 阅读 · 0 评论 -
C/C++编程-语言陷阱-字符串
字符串操作前言定义字符串有三种定义方式:操作应用前言要说C语言的精髓,想必大家第一印象都会想到指针。那么第二是谁呢,目前的我认为是本篇的主角“字符串”。接下来就说一说原因。定义字符串有三种定义方式:string str1 = "hello world A";char *str2 = "hello world B"char str3[] = "hello world C"不要扯宏定义,咱们就说变量。str1和str2 都是静态常量区。是和程序一起编译后,存储到只读区域的。因此C++官方也建原创 2021-12-08 23:43:45 · 451 阅读 · 0 评论 -
实践经验-仪器工程-整机系统
工程实践经验硬件接口USBUART/USARTRS232RS485CAN网口SPIIICHDMIPCI硬件接口USB特性数据适用性说明热插拔等级最高不仅热插拔,还可断点续传速度高低最高可传输视频长度2m适合仪器内部局域链接固定不可拖动移动式部件不可采用此接口UART/USARTRS232RS485CAN网口SPIIICHDMIPCI.........原创 2021-12-03 19:02:55 · 574 阅读 · 0 评论 -
工具&软件学习-Linux学习-Linux开发环境
Linux开发环境shell应用shell对比常用命令文件操作命令shell应用shell对比vivim仅限unixunix、linux、windows、mac通用适合查看适合encoding常用命令文件操作命令vim [参数] [文件名] :编辑文本文件,有此名字文件就打开编辑,没有就创建touch [参数] [文件名]:创建各种类型文档。mkdir [参数] [文件夹名目录名]:创建问件夹。rm [参数] [文件名或者目录名]:删除文件、文件夹原创 2021-11-14 14:46:52 · 831 阅读 · 0 评论 -
理论学习-蓝牙协议栈-学习目录和规划
蓝牙的学习目录和规划(草率版)上层应用协议基础UUID私有UUID连接的建立广播配对和绑定上层应用协议基础UUID私有UUID连接的建立广播配对和绑定原创 2021-10-26 20:24:44 · 98 阅读 · 0 评论 -
理论学习-ARM-通用串口学习
通用串口学习串口(UART/USART)综述UART(Asynchronous 异步)USART(Synchronous/Asynchronous 同步/异步)同步需要下面引脚配置:硬件流控制的引脚配置:串口(UART/USART)综述UART(Asynchronous 异步)USART(Synchronous/Asynchronous 同步/异步)同步需要下面引脚配置:CK:发送时钟输出。其与SPI基本类似(在起始位和停止位没有时钟脉冲,软件设置在最后一个数据位发送时钟脉冲)。RX引脚可以并行接原创 2021-10-22 17:10:55 · 1093 阅读 · 0 评论 -
工具&软件学习-GIT版本管理-git常规应用策略
git常规应用策略git的核心思想本地工程、仓库、分支和远程工程、仓库、分支的创建本地工程、仓库、分支的维护 和 远程工程、仓库、分支的维护branchpullpushmergerebasegit的核心思想本地工程、仓库、分支和远程工程、仓库、分支的创建本地工程、仓库、分支的维护 和 远程工程、仓库、分支的维护branchpullpushmergerebase.........原创 2021-09-05 16:32:55 · 200 阅读 · 0 评论 -
理论学习-蓝牙协议栈-BLE观察者回调机制
<div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-1a85854398.css"> <div id="content_views" class=...转载 2021-09-05 15:57:06 · 934 阅读 · 0 评论 -
理论学习—蓝牙协议学习-BLE观察者回调机制分析[转载]
BLE事件回调机制解析 nRF5 SDK从版本14开始,对事件回调机制做了更新,引入了观察者模式,以解耦不同BLE Layer对BLE事件的回调函数。 实现这套机制用到了Flash的段(Section),将RAM中的函数调用与Flash中的段操作结合到一起,这个想法很新颖。 本文尝试理解和追踪整个回调过程,并写一段代码验证我们的思路。 一、观察者模式简介 面向对象编程世界里有许多著名的设计...转载 2021-09-04 18:31:19 · 627 阅读 · 0 评论 -
理论学习-协议栈学习-CANopen协议梳理
CANopen协议梳理开放式系统互联模型开放式系统互联模型#mermaid-svg-HZ8SoiZMMF81mm0j .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-HZ8SoiZMMF81mm0j .label text{fill:#333}#mermaid-svg-HZ8SoiZMMF81mm0j .no原创 2021-09-01 17:19:19 · 226 阅读 · 0 评论 -
理论学习-蓝牙理论-蓝牙协议栈的GATT
蓝牙协议栈的GATT引子这里主要解释GATT的一些重要关键词的解释。引子角色:除了GAP定义了角色之外,BLE还定义了另外两种角色:GATT服务器和GATT客户端。**GATT服务器**:提供数据的设备。**GATT客户端**:访问GATT服务器而获得数据的设备。以LED Button应用为例,外围设备(带有LED和按键)作为服务器,集中器作为客户端。GATT层: GATT层是传输真正数据所在的层。一个GATT服务器通过一个称为属性表的表格组织数据,这些数据就是用于真正发送的数据。原创 2021-08-29 17:31:03 · 419 阅读 · 0 评论 -
工具&软件学习-GIT版本管理-远程仓库版本管理思路
远程仓库版本管理思路原创 2021-08-20 18:59:50 · 71 阅读 · 0 评论 -
C/C++编程-分层模块化-封装和注册的实现
C/C++编程-分层模块化-封装和注册的实现思想实现逻辑图代码实例(RT_THREAD)思想类似于C++的对象概念,Device是基对象(父对象),然后和timer的具体对象信息包装一起,绑定一起走。以便以后操作实现。将额外包装的“用户操作信息”和“子对象信息”也这样包装绑定在一起,然后通过register函数将“用户操作信息”对“子对象信息”赋值,即为注册。因为“用户信息“对应APP,是供APP层使用的。所以以后APP层调用Decvice,可以直接通过”子对象信息“来实现。实现注册、检查等函数。,即原创 2021-08-16 15:54:08 · 802 阅读 · 0 评论 -
C/C++编程-分层模块化-回调函数
C/C++编程-分层模块化-回调函数abstract:回调函数,即是以函数指针为形参的函数。其中,作为形参的函数指针,是上层APP的定义在底层模块运作的函数。其中,回调函数,是底层模块为上层预留的代码接口。从而将上层APP的函数,填补到底层预设的部分。达到由上至下的交互,而非通常的由下至上。原理图如下:graph TBsubgraph APPA[上层APP]B[上层驱动]endsubgraph 底层B[上层驱动] --底层回调-->...原创 2021-07-22 16:53:25 · 527 阅读 · 0 评论 -
C/C++编程-函数模块化-局部变量的优点
#C/C++编程-函数模块化-局部变量的优点1,优点可以命名一个更容易阅读理解的名字。eg:很清楚是哪个引脚引起中断的。static void call_back_zero_pin_mapto_relay(control_pin_enum pin_index){ control_pin_enum zero_irq_pin = pin_index; if((zero_irq_pin == RINSE_L1)&&(s_relay_status[CLEANSE_L1].finish_原创 2021-07-22 12:08:42 · 320 阅读 · 0 评论 -
C/C++编程-函数模块化-可重入函数
@[TOC]C/C++编程-函数模块化-可重入函数引:#不带系统的可重入函数#带系统的可重入函数原创 2021-07-04 19:18:11 · 173 阅读 · 0 评论