- 博客(17)
- 收藏
- 关注
原创 C++工程引入C库产生的问题
但是库函数也引用了,函数也高亮提示了,编译就报错,不知道什么问题。突然想起来,引用的库是c的,项目是C++的,所以,要在引用的库,加上。最近在写公司代码的时候,移植新的代码。这样程序就能编译通过了。
2024-03-22 16:24:44
207
1
原创 Linux 更改网口名称的一种方法
网口名称取决于选用什么命名规则,如果是内核命名规则,那就是由初始化顺序决定的,谁先连上谁就是eth0,而在同初始化优先级下,网口初始化顺序由编译顺序决定,通过修改设备树中的位置,即可达到更改编译顺序的目的。各位如果在初始化过程中遇到了异常现象,那么可以考虑可能是初始化顺序带来的影响。
2024-01-04 09:57:22
702
1
原创 nxp RT1176 双核MCU编译与烧录 CubeMX
那么M7就会关联上M4的工程代码,编译的话就编译主核(M7)的代码,它会顺便编译M4的代码。烧录跟编译同理,烧录M7的代码也会把M4的烧进去。如果要运行双核的代码,那么你需要两个工程文件,分别为M7和M4的。通常倒入SDK的时候就能见到,例程都分为M7版本和M4版本的。之前接触的都是单核的MCU这次 rt1176是双核MCU 分为M7大核和一个M4小核。右边Slave xxxx 栏下选择下图中格式的M4核文件(注意是M4核工程下的文件)右键主核(M7)工程找到属性点击,出现如上图所示的界面,依次点击。
2023-11-24 17:42:13
1015
1
原创 为什么tcp需要四次挥手而不是和握手一样是三次?
为什么tcp是四次挥手不是三次,或者说为什么tcp不能是四次握手?tcp不是四次挥手,而是大概率四次挥手。原因是tcp的重发机制和缓冲机制。tcp挥手时需要对缓冲区处理,需要等待一段时间,所以先让客户端等待一段时间,所以造成了四次挥手的机制。
2023-11-04 16:51:25
136
1
原创 stm32 cube IDE 官网登陆后 不跳下载栏导致无法下载的现象
尝试多次,并且重启后再次尝试也是这样。所以,如果下载cubeIDE,不要登录,直接填邮箱下载就好了。目前是没有登录的状态,进入页面一小会就跳出下载栏。{ps:下载个软件搞了十多分钟,整的我好烦}无论等多久这边也不会跳出下载栏。
2023-09-25 10:07:24
602
1
原创 Codesys 的仿真模式时间极其不准确
搞了大半天一直以为自己代码哪里有问题,后面才发现的仿真模式下有问题。仅仅1秒中的偏差就有至少40% 而且还不是固定偏差,太离谱了。
2023-09-14 15:15:32
233
1
原创 浅谈项目主控芯片选型
这一点结合前面的厂商稳定性来讲,比如很多单片机的芯片都是兼容一款市面上比较通用的芯片的引脚定义。比如很多厂商的单片机都兼容stm32F103 的引脚,这一点一方面是国产厂商方便用户国产化替代,另一方面是就是方便用户在缺芯的时候,反复横跳。厂商的稳定性是,可能有的厂商的芯片会出现蓄意断供的情况,造成不可预料的影响。首先,芯片选型之前,你需要对你项目的需求非常明确,这样你才能对市面上海量的芯片做选择与切分。·容量,这部分一般来说,市面上的容量一般都符合要求,除非你跑字库,或者协议栈什么的。
2023-09-03 17:49:18
856
原创 keil编译完成后MDK输出的大小信息都是什么含义
首先点击编译按键后,生成的是hex文件,单片机都是通过烧写hex文件来更新代码的,结合里面的关键词,因此这个“Program Size” 可能是跟hex文件有关。2、c语言中的“内存分区”中的内存,指的是ram,不是rom,结合1可以得出结论,单片机在启动后运行前,首先要将程序从rom搬运到ram中,不然没法运行的。从上面可以看出,单片机运行需要搬运哪些数据,首先排除堆栈,因为栈里包含的都是局部变量,过程变量,都是随用随开辟,而堆是专门给编程人员开辟的自由空间,因此排除掉,那么还有两个分区呢?
2023-08-29 13:59:05
480
原创 关于DMA占用总线情况的探究
DMA传输中,总线一半可用,那么是不是会影响CPU 的运行速度?那么ADC会经过总线到SRAM,在数据经过总线的时候,CPU就无法与总线交互,因此M3核采取分时复用,让CPU也有一半的时间能够使用总线。最近在研究DMA,我对DMA的认识是:一个搬运工,让CPU减少搬运数据的操作,腾出时间多做运算,提高运行速度。我对上面功能描述的理解是这样的:比如用DMA来将ADC采集模拟量到SRAM。但对手册中的一段对DMA总线占用情况的描述不太清楚。
2023-08-28 16:20:18
772
1
原创 什么是面向对象
让我想到了大一,学c++的时候,那是我学的第一门编程语言,当时电脑都没有,对计算机的认识也仅仅比一般人强一些,知道一些显卡型号,电脑选购什么的,但对于计算机体系结构其实是不知道的,所以导致我在学面向对象之前,c的部分,就很蒙,而且从c立马转向面向对象,导致没有任何编程经验的人要去理解面向对象,那简直就是不可能的事情。而现在,大学毕业有1个月了,才渐渐明白。- 知乎 https://www.zhihu.com/question/433723917/answer/1615431045。
2023-08-17 14:16:10
64
1
原创 谈一谈为什么编程语言都需要“变量类型”
为什么需要变量类型,回顾一下计算机的结构:计算机有处理单元,总线,内存,IO组成,处理单元基本做的事情就是输入,处理,输出,但是存储器面对的都是01010101010二进制,我拿的时候我怎么知道要拿多少,所以就必须定义一个“拿”的范围,我要拿多少来处理,处理完成后,我需要给总线上放多少位数据,所以这个才是变量类型诞生的根本原因,这是从娘胎里带来的。所以问:有没有不需要类型的编程语言,答案是“有,但是不现实,没必要”。最近越来越感觉到,想要了解一个类型的编程语言,最后都会回到计算机硬件的结构特性上。
2023-08-17 13:00:37
127
1
原创 单片机AT32代码移植后芯片烧录一次后,无法再次烧录
使用官方开发板调试好代码后准备移植到项目用的同款芯片板子,第一次连接后keil能够识别到芯片,但是第二次准备烧录时,芯片怎么都识别不出来。以为是芯片问题,再次换过芯片后还是烧录一次后就识别不到芯片了。看过官网上的相关文档FAQ,仍然无法解决。
2023-08-15 10:18:24
999
原创 关于keil5.37target栏空白、找不到编译器、启动错误弹窗的解决方法
Warning RegisteredARM Compiler Verson notfoundin path ARMCC Update the configuration of multiple ARM Compiler inManage Project ltems under Folders/Extensions ARM Compiler
2022-06-16 13:13:49
7723
2
原创 关于CCleaner 卸载程序删除所有软件文件的现象
现象描述:CCleaner的卸载程序将所有的软件删除了如图:卸载程序把/software目录下的文件 从A开头已经删到了M开头原因:1、安装时,没有在/software目录下新建一个软件专有目录,而CCleaner安装程序选择安装路径时,它是不会自动再创建一个专门的文件夹存放软件文件的。所以实际上软件安装在了/software里,而不是/software/CCleaner。2、最离谱的是CCleaner的卸载程序的逻辑是删除安装目录下的所有文件(vmware的卸载程序就不是),如
2022-05-06 11:06:14
2462
3
原创 常用转义字符记忆,看了基本不会忘
之前做串口通信和写log的时候,经常记不得后面是加/r/n 还是/n/r 。每到这个时候总要问一遍自己:“/n是啥来着/r是啥来着” 卧槽怎么又没记住。 遂这次从命名出发,彻底记住每个转义字符的意思。转义字符来自ASCII表比较常用的也就这几个:/r /t /b /n /r\tTAB制表符\bBACKSPACE退格符\nNewLine换行符(本意:换一个新行,但列位...
2022-05-04 12:52:25
824
原创 第二个账号,全新的开始
由于之前的账号手机号绑定的是流量卡,流量卡没了之后就彻底作废了,很遗憾。所以就从这个账号陆续上传一些自己的学习记录与碎碎念吧。
2022-05-04 12:38:17
174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人