ADSP21062L调试总结

最近研究了一下ADS21062L的报告存储,发送的问题,对于本公司前辈们的程序不得不在此吐槽一下,不是因为自己的程序写的比别人好,而是以此为鉴,为了自己在以后的编程中代码编写更加规范。

先看初始化代码:

init_dsp0_rep:

                   r2=0;

                   dm(EVENT_REP_INT_NUM1)=r2;

                   dm(EVENT_REP_INT_NUM2)=r2;

                   r15=EVENTREPORT_BUFF;

                   dm(EVENTREPORT_BUFF_POINTER)=r15;



                   r14=0xff;

                   r0=dm(EVENT_REP_NUM1);

                   r1=dm(EVENT_REP_NUM2);

                   r0=r0 and r14;

                   r1=r1 and r14;



                   r3=EVENT_REP_NUM;

                   comp(r0,r2);

                   if LT jump init_dsp0_rep_01;

                   comp(r0,r3);

                   if GE jump init_dsp0_rep_01;

                   comp(r1,r2);

                   if LT jump init_dsp0_rep_03;

                   comp(r1,r3);

                   if GE jump init_dsp0_rep_03;



                   r10=EVENT_REP_LENGTH;

                   r10=r10*r0(uui);

                   r9=EVENTREPORT_GLOBAL;

                   r9=r9+r10;

                   dm(EVENT_REP_POINTER1)=r9;



                   jump init_dsp0_rep_end;

         init_dsp0_rep_01:   // num1

                   comp(r1,r2);

                   if LT jump init_dsp0_rep_02;

                   comp(r1,r3);

                   if GE jump init_dsp0_rep_02;



                   dm(EVENT_REP_NUM1)=r1;



                   jump init_dsp0_rep_05;



         init_dsp0_rep_02:   // num1 err, num2 err

                   r0=0;

                   dm(EVENT_REP_NUM1)=r0;

                   dm(EVENT_REP_NUM2)=r0;



                   jump init_dsp0_rep_05;



         init_dsp0_rep_03:   // num2 err

                   dm(EVENT_REP_NUM2)=r0;



         init_dsp0_rep_05:   // rep zone err,write report

                   r0=dm(EVENT_REP_NUM1);

                   r14=0xff;

                   r0=r0 and r14;

                   r10=EVENT_REP_LENGTH;

                   r10=r0*r10(uui);

                   r9=EVENTREPORT_GLOBAL;

                   r9=r9+r10;

                   dm(EVENT_REP_POINTER1)=r9;



init_dsp0_rep_end:

里面有太多的大写的东东,不知道是变量还是宏定义,如:

EVENT_REP_INT_NUM1

EVENT_REP_INT_NUM2

EVENTREPORT_BUFF

EVENTREPORT_BUFF_POINTER

EVENT_REP_NUM1

EVENT_REP_NUM2

EVENT_REP_NUM

EVENT_REP_LENGTH

EVENTREPORT_GLOBAL

EVENT_REP_POINTER1

所以看这种代码很累,如果你一下看得懂,那你是大神,比我厉害多了。所以程序的编程规范个人觉得很重要,像这种代码就是小公司没有编程要求和代码规范审核的结果,

下面我们就来解析一下这个具体的大写的东东,

EVENT_REP_INT_NUM1 :变量,存于RAM空间,写下标

EVENT_REP_INT_NUM2 :变量,存于RAM空间,读下标

EVENTREPORT_BUFF    :RAM空间循环BUF的基地址

EVENTREPORT_BUFF_POINTER:指向RAM空间EVENTREPORT_BUFF内地址的一个指针变量

EVENT_REP_NUM1:变量,存于NVRAM空间0X600001地址处的一个变量,写下标

EVENT_REP_NUM2:变量,存于NVRAM空间0X600002地址处的一个变量,读下标

EVENT_REP_NUM:宏定义

EVENT_REP_LENGTH:宏定义

EVENTREPORT_GLOBAL:循环缓冲区的基地址0X600003

EVENT_REP_POINTER1:指向EVENTREPORT_GLOBAL地址空间的一个指针变量

 

1、产生报告,存入ram缓冲区,EVENT_REP_INT_NUM1写指针+1,并更新指针EVENTREPORT_BUFF_POINT指向下一个报告存储位置处.

2、产生新报告后,先判断EVENT_REP_INT_NUM1和EVENT_REP_INT_NUM2,读写下标不相等,说明有新报告产生,从读下标取新报告存入NVRAM,更新NVRAM区写指针EVENT_REP_NUM1,并更新读指针EVENT_REP_INT_NUM2+1。

3、通信时,先EVENT_REP_NUM2读下标处报告内容里面的新报告标志是否为0Xa6,如果是说明是新报告,则发送,如果不是,说明是重复报告,或者旧报告,则增加读指针,不发送,(或者通过判断读下标EVENT_REP_NUM2和写下标EVENT_REP_NUM1)。

总结:代码规范个人感觉很重要,不仅仅利于阅读,更是高可靠代码的基础。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值