- 博客(15)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 【无标题】
加上发送方所属vlan1标记,第三层交换模块像路由器一样处理数据包,取出其中的IP包,根据目标IP地址,查找路由表,确定目标路由vlan2,将IP包从vlan1转到vlan2的SVI端口,重新封装成新的数据帧,由三层模块转发给目标设备。当ARP表为空时,发送方发送数据给SVI端口时会采取ARP请求获得SVI的MAC地址,目的vlan的SVI端口也会采取ARP请求获取目的IP地址的MAC地址,然后将数据发送到目的地。trunk会转发所有vlan的数据,达到实现两台交换机同一vlan的通信。
2023-06-15 18:15:06
83
原创 Makefile
这篇文章写给接手大型项目,但是此前没有过makefile经验的人。 当拿到一个SDK时,找到其中最外层的一个Makefile。会废掉一些时间梳理SDK文档,但是要有恒心,一点点来,总能掌握的。可以借助README ME,如果有这个文档的话,会省去不少时间。一般最外层的Makefile会定一些整个项目的普遍内容。例如:编译指令所传入的参数,最外层Makefile接收并传入整个Makefile链;编译路径,编译工具,编译结构等。遇到看不懂的语句可以百度,makefile语句不会特别难。找到最外层的Makef.
2022-03-01 13:43:58
116
原创 使用vim加插件看代码
如图是我目前搭建完在用的vim。左边区域是nerdtree,实现代码树功能。直观并且不需要cd返回切换目录;最右侧是tagbar,可以快速定位到当前项目的标签处,有局限性,不在当前文件定义的它不会列举出来,所以我搭配了最下方处的srcexpl;最下方是srcexpl,实现搜索功能,可以跨文件,找到想知道的变量结构体定义处;中间部分是代码。三者安装均可使用plug,直接在vimrc文件中输入`call plug#begin() plug 'preservim/nerdtree' plug '.
2021-09-15 16:51:30
560
原创 LCD驱动芯片ST7789V
最近在调LCD显示屏,用到的驱动芯片是ST7789V。想了想初始化代码还是不放上来了,别的地方都有。由于节省成本,用的是三线,即CS,CLK,SDA。驱动芯片上可以看到,采用三线制的时候,一条命令由9位组成,最前面一位为数据/命令的位。但是硬件SDI是8位的,这边可以采用使用硬件,发送两次的方案,也可以直接使用软件模拟的方式。我采用的是第二种。/****************************************发送数据,D/C为1*****************************
2021-06-21 11:07:12
6000
原创 找资料
入行有一段时间了,发现经常在CSDN上看到需要积分下载的资料,一般而言,如果不是自己写的代码,想看什么数据手册,官网都有。实在不行,搜一下如何在某某某官网上找到某某某资料,找个几次,就自己会了。我想想自己也有一些资料了,但是完全没有上传的必要。只要各大公司还在运营,就不会找不到资料。而且只要不是技术上的难关,只是入门的话,各大使用手册也是很有用的。而且由于是他们自己出的使用手册,会更贴合他们的产品。搜索来的,会因为这里那里不匹配,但是用他们自己的就不会。搭配着数据手册,原理,能很快帮助我们入门。再找资料,.
2021-05-25 11:25:57
113
原创 栈溢出
表达能力弱,直接上图实验结果,当使用scanf时,我可以通过输入超过10的输入,来造成溢出,进而让程序判断我输入密码为正确的,实际上是错误的。[PS:这算不算一个VS2019好过DEV的地方]
2021-05-17 17:08:29
110
原创 移植感慨
这短时间移植了两个项目,最大的感慨可能就是规范二字吧。.C,.H文件使用的好,真的会给移植带来很大的便利。假如人人遵守规则,那么移植代码,只是更改不同芯片的底层而已,很可能就是换一换实现方式,没那么难。故此,在这里,再写一份规则。将函数实现,变量定义放在.C文件,需要被外部调用的一系列,无论是函数,变量,结构体,联合体,任何都好,去.h文件里面申明。这么做的好处和缺点自行百度,但是这样的代码便于移植。毕竟一堆的结构题,命名还都接近的变量结构体联合体,真的很容易让人晕头转向。最怕的就是乱,有的在头文件里
2021-05-08 17:27:25
95
原创 浅谈蓝牙
最近因工作需要,研究了一下蓝牙,此前只用过MQTT协议,看过些许的TCP/IP。写这个算是整理一下自己的思路,整理一下蓝牙,如果有不对的地方,希望多多沟通。协议我一般都会看它的组成,这次的蓝牙也是。和一般的网络协议没什么区别。首先是PHY、LL和HCI。这三者之间,LL最为重要,也是整个蓝牙协议的核心,它负责从哪发(选择哪个射频通道),什么时候发(具体时间点),发的是什么(识别空中数据包),以及怎么保证发的完整性,如何进行重传,如何管理控制链路。简而言之,LL层负责发送数据的所有事宜(当然,只管接发,不
2021-04-28 11:55:15
175
原创 项目记录
20210428换工作之后的第一个项目,记录一下。引脚设置需要根据实际情况来:例如此次项目中用到的按键,需要将引脚口设置为内部上拉,不然检测的时候会检测到悬空的状态,不出现需要用到的高低电平状态;过零检测点不需要任何的内部上拉或者下拉,上拉的时候,电平被提升了,导致整个波形上移。硬件上的电压不稳,纹波影响,导致发热丝失控,改用软件同步硬件时序,然后软件模拟。51长时间不用,忘记了中断的使用方式,和32的不一样,51里面是直接将中断函数链接到中断号即可。EEPROM是一个需要关注的事情。这一次因为E
2021-04-28 11:34:23
114
原创 linux
扩大swap:sudo dd if=/dev/zero of=swap bs=1G count=24sudo mkswap -f swapsudo swapon swap临时设置重装ubuntu图形界面:ctrl+alt+f4进命令行界面,重装图形界面sudo apt-get install ubuntu-desktop(sudo dpkg --configure -a视情况加不加这条)输入密码,重启。...
2021-04-09 14:57:07
106
原创 ubuntu16.04中编译Android11.0
编译过程,先获取到源码。由于是和瑞芯微合作,直接从他们那边拿的源码,搭建过程大同小异。但由于本人是新人菜鸟,在linux上走了些弯路。首先是文件的处理,.tar.gz格式的压缩包,一共有10个,首先需要将他们合并为一个文件,合并解压,但由于中间包含了pdf格式文档,故解压失败。解压语句将pdf排除即可;解压完成之后,按照Android编译步骤走,首先编译环境初始化,其次选择编译目标,最后执行编译。中间缺少什么会有相应提示,一般安装即可。其中这些操作需要在对应路径之下。这和windows不同,linux只
2021-04-09 13:46:55
631
原创 看书记录
《鸟叔的linux私房菜》读书心得1、因为CPU读取数据量有限制,因此能够从内存中读写的数据也就有所限制。所以,一般32位的CPU所能读写的最大数据量,大概就是4GB左右。这句话不是很理解,如果是2^32次方,刚好等于4G换算到Byte。可是一次读取不是32bits吗?...
2021-04-02 11:08:16
128
原创 调试心得
判断一个控制波形正不正确,可以在该处理函数里面添加一个方波,通过观察方波情形判断该处理是否正确;软件模拟硬件触发条件,便于判断软件代码是否OK;
2021-03-18 20:29:05
122
原创 实现四则运算
四则远算器实现最近在看数据结构,第一个实际栈的应用后缀表达式例子:9+(3-1)*2将这个式子转换为后缀表达式遇数字输出,遇符号进栈,符号优先级低则出栈。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、实现四则运算二、使用步骤1.先将四则运算表达式转化为后缀表达式2.对后缀表达式进行运算总结前言最近在看数据结构,遇到第一个实际栈的应用,记录一、实现四则运算将平时的四则运算表达式又称为中缀表达式转化为后缀表达式。二、使用步骤1.先将四则运算表达式转
2021-03-12 17:42:20
696
原创 打印数据,定位问题
打印数据,定位问题void printxxx(unsigned char* data,int len){ char src1[2]; src1[1]='\0'; for(int i=0;i<len;i++) { unsigned char src=data[i]; src1[0]=src>>4; if(src1[0]<10) src1[0]+='0'; else src1[0]+='a'; Uart1_SendStr(src1);
2021-02-22 10:02:49
106
空空如也
发热丝控制,功率不稳定
2021-04-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人