工作注意点记录以及不熟知识点总结

工作注意点记录以及不熟知识点总结

工作注意点记录

1.进行代码开发工作要开发一个功能单元验证一个功能单元,不要以为最后验证可以节省本来就一次写好的功能单元的时间,可能会节省几分钟但是实际情况是定位问题出现在哪个问题单元会浪费30-120分钟,所以一定要养成开发完一步紧接着就验证一步的良好的开发习惯。
2.在编写代码过程中,要时刻保持批判性思维:”我这样写代码对不对,有没有遗漏的点?“,另外编写代码过程中要特别注意函数指针形参的的应用以及长度的传输对不对,容易出现问题的点1.多加 * 或者少加 * ;2.长度应用是否正确
3.在编码判断条件的过程中,要防止坑的出现,比如说以下判断条件有可能出问题的,以后这里要留个心眼,以助于排查问题

if(RecvLen >= 15 && (memcmp(&CmpValue, &RcvBuff[8], 4)))
{
.......
}

4.调试雷达OTA升级犯的错误:
①有的变量初始化不能赋零(比如:超时后既不做成功也没有失败反馈的函数,判断这种函数的返回值的变量定义一定不能用零,要用成功反馈值与失败反馈值不一样的值)
②不要偷懒,一定要加数组越界的保护,一定要加错误的失败反馈,否则最后会出现一些很奇怪,定位起来费时费力很SB的问题,并且定位出来发现这个问题很简单但是他就会在你不知道的情况下卡一两天的进度
③指针赋值时一定要检测数据类型是否一致,不一致的话要强转
5.一定要记得全区变量用完要重新初始化
6.

不熟知识点总结
1.指向非法内存的指针叫做野指针,野指针形成原因:①指针越界 ②free后没有将指针赋值为NULL ③ 指针定义时没有把指针初始化为NULL
2. void的作用:memcpy和memset的指针入参都是void类型,这样好处就是给memset入参传入指针不用强转指针的数据类型(void类型的指针不可p++哦,因为有的编译器不知道他到底一次加几个字节,有的编译器报错,有的编译器直接默认为+1)
3. 软件定时器刚创建时是不启动的,要用相应的函数启动它。
4. 软件定时器启动后其回调函数并不会立马执行,而是会等设定的时间间隔后再执行。(当然也可以设置启动后立马执行,但默认情况下都是不会启动后立马执行其回调函数)
5. 默认网关的作用是什么,为什么要有默认网关?答:太详细记不住,对他理解就是个路由器的ip就行,网关用于与不同网段的数据交互
6. ping网络时出现的那几个参数分别是:seq(发包交互序列号,不全则代表交互丢包),ttl(可经过网关的个数,每过一个ttl减一),time(发包交互并返回的时间,时间太长代表网不好)
7. >/dev/null 其中>为重定向的意思,/dev/null是个特殊的设备文件,相当于回收站。重定向这里的内容都会被抛弃掉。0 – 标准输入文件描述符的值 1-- 标准输出文件描述符的值 2 – 错误输出文件描述符的值 。 command 1>/dev/null ---->将这个命令的标准输出抛弃
8. 栈空间溢出的经验总结:栈空间溢出分为两种。①是编译器根据芯片物理运行内存大小与程序申请的栈空间大小作比较,物理内存不够大时,则进行编译报错。②线程创建和定时器创建时申请的栈空间过小,程序编译无误(物理运行内存够用),但是程序在芯片中运行的过程中显示栈溢出,则说明定时器或者线程创建的时候申请的栈空间过小了,需要加大。
##智能家居摄像头工作总结
1.sensor接收到的raw数据经过ISP的同事处理(调节抗频闪、锐度等)后给到驱动,此刻驱动拿到的是信息叫YUV(Y:亮度 UV:颜色),驱动将图像数据进行编码,这才是软件拿到的”流“,编码后的数据才有了I帧、p帧的称呼
2.

智能家居串口编码经验总结

1.串口数据接收结构体要设置为如下更方便(能避免很多问题)

typedef struct tagUartRecv
{
	char RecvBuff[1000];
	int RecvNum;
}TAG_UART_RECV_S

用RecvNum记录接受的字节数判断接收的多少,用RecvBuff[100]承载接收的内容
2.串口编码注意点:①能不清空接收buff就不要清空,来了新的数据就把老的不用的覆盖掉就好,即能避免清空浪费时间,又能防止没处理完数据就清空的现象②注册的串口接收handler相当于一个“线程”,它是一个字节进入一次中断进行处理接收的,所以不是数据流接收不完这个中断就出不来别的线程就无法处理的,它一个字节进入一次中断进行处理接收,要接收完毕做个信号量的同步操作才能让别的线程处理接受的数据,否则会有问题!③中断函数中能不加打印就别加打印,可能有隐患。④中断函数中千万不能有阻塞,这是老生常谈的话题

蓝牙工作记录总结

目前蓝牙开发过程就用调用SDK的蓝牙接口与app进行业务通信,但是有几点需要说明白:
1.开发过程中蓝牙客户端与服务器两个设备应规定相同的UUID,只有这样才能在连接后相互通信。(连接过程是SDK自己做的)
2.把自己写的蓝牙数据接收处理函数注册到SDK的A函数中,A函数会把蓝牙协议栈的数据自动传入自定义的数据处理函数中
(注:每个UUID对应一个不同的SDK蓝牙数据接收注册函数,具体哪个UUID对应哪个SDK注册函数需要看SDK代码UUID与注册函数的对应关系)
3.一个UUID对应一个软件业务,可用不同的UUID做不同的软件服务业务处理,UUID多的话就成了软件业务处理服务框架

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值