原因如下:
模块开发,其中包含在项目开发中由具体的业务层次分成的模块,按照功能划分为模游仔块!
再详细的还有按照某个特定的方法中也可以称之为模块!因为每个公司的要求不同漏誉所以模块也是不同的!
分模块开的好处有很多,比如我们开发了一个留版的模块,以后所有的项目只要能用到留言版,都可以直接调用了,不用神搜汪重新再开发一次了,这是好处之一,也是最大的好处。
所以建议新手应该保存一些基本的代码!以备高压力工作下能快速开发出高效的代码!
把程序分为主程序和子程序,册差我觉得有如下的好处:1. 调用时方便,例缓姿粗如在某一程序中多次要重复执行某一相同或者相似的代码,则可以考虑把这一部分重复的代码写入子程序中,在主程序中可以通过调用子程序来实现。例如
program main
...
b=a+1
c=b+1
...
b=a+1
c=b+1
...
b=a+1
c=b+1
...
end program
可以通过
subroutine subs(a,b,c)
b=a+1
c=b+1
end subroutine
program main
...
call subs
...
call subs
...
call subs
end program
来实现,这样有几个好处:
1. 节省工作量,减少重复代码
2. 修改方便,可以通过只修改子程序来更改整个主程序中相应的模块
3. 程序模块化,设想你如果需要在你的程序中实现某个功能,你可以通过下扰镇载别人编写好的子程序来实现,你不需要关心别人的程序中具体实现的细节,而只需要管理子程序和主程序的接口,方便程序的封装和模块化。
一般在汽车电子中给ECU刷写程序的时候,由于程序过大,超过多帧允许发送的最大字节数,就需要分块了,分块的大小按照嵌入式底层和上位机约定的大小,一般为1024个字节的整数倍。按照多帧发送的规则,
大致回顾以下过程,
首先上位机发送请求,02 27 03
02:字节迹瞎大小
27:服务号
03:子功能
下位机回复多帧发送
其中100A
1:表示多帧(多帧同样适用于程序刷写,依然是这个格式,当下位机通过该报文读取到字节数和块大小一样,那么发送BS为0,表示不分块)
00A:表示多帧的字节数A表示一共10个字节
下位机发送
上位机发送流控帧
30 08 0A
30:其中3表示流控帧;0(FS):表示流状族谈态,继续发送,等待,还是其他
08(BS):表示块大小
0A:间隔时间
流控帧一般上位机和下位机约定固定值
流控帧发送:21表示多帧发送,第一个多帧应为在10 0A的时候已经发送一次了,所以从21开始;
一般多帧发送从20~2F依次循环,直到发送完该块的大小;
举例:
一个程序有2048个字节,那么我们规定一个块发送1024个字节,那么我们发送两个块就可以发送完毕该程序到下位机;
那么理论一个块需要发送几次循环的多帧呢?
1024/(7*16)=9
及就是循姿穗空环20~2F一共9次就可以讲程序发送完毕;
20~2F一共有16帧,注意这个时候帧与帧之间的时间间隔,不能太短一般定为50ms
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)