作为嵌入式软件工程师在项目开发时的一些易错总结-04

一.总线带宽计算
    带宽:是指计算机每秒钟由存储器读取的二进制数据的位数。
    总线带宽:指这条总线在单位时间内可以传输的数据总量。
    总线周期:一个总线周期由几个时钟周期组成。
    ---例题1:某计算机字长16位,存储器存储周期为500ns,存储器带宽----32Mbit/s.
    计算:(1秒钟访问RAM的次数)1/500ns;每次访问RAM读取16bit;所以带宽=16bit*1/500ns=32Mbit/s
    ---例题2:假设某系统总线在一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz,则总线的带宽是:---20MB/s。
    计算:由题目可知,一个时钟周期传输的字节数是2B,总线时钟频率是10MHz;2B/时钟周期*10MHz=10MB/s;一个时钟周期=1Hz。


 二、在watch1窗口中查看中断中的变量值;数值一直在跳变,但是根据串口打印的数据,数据是正常的;
    原因;watch1窗口中的显示是有延时的,而中断中的数据确实实时变化的,从而造成了错位(跳变)。

三 、最近调试一块芯片的flash,发现控制flash读写之后,烧写程序就会出现报错--->Too many errors to display !;
    1.情景:调试一块新的芯片,擦除、编程函数对方有给,读函数是自己写的(厂商提供的固件库中没有读函数o(╥﹏╥)o);
    2.问题-现象:我执行了擦除、编程、读数据后;再次下载程序会报错--->Too many errors to display !只有重新上电才能烧写;
                        之定位到,我执行了读函数后,程序再次下载会出问题;
    3.原因:
        ------需要提前说明的是,芯片的flash提供了2个存储空间,一个是主闪存存储区,一个是用户存储区;程序运行时执行的就是主闪存存储区,我们所操作的就是用户存储区;
        ------所以在,读函数中,我将读取的区域设置为用户存储区,之后并没有将flash的指向区域恢复为主闪存存储区,从而导致下载时的地址出错;实际测试就是这个问题。

四、STM32F1,GD32F1使用KEIL仿真时,一直卡在了SystemInit()配置系统时钟的函数中,为什么?
    同时打印的还有错误信息:*** error 65: access violation at 0x40021000 : no 'read' permission,为什么?
    1.首先回答第一个问题:因为SystemInit()配置系统时钟的函数中,有一个等待内部RC 倍频稳定的函数,但是因为你是软件仿真,没有实际的晶振怎么能实现稳定的倍频!所以会一直卡在那里。
    ---推荐使用硬件仿真,方便。
    2.第二个问题我在网上找到了一个解释很好的博客,上网址:https://blog.csdn.net/beready/article/details/24668529;
    
五、单片机寄存器中的保留位,是否可以改变其值?
    1.单片机中存在保留位,原因是现有的位数已经能够满足我想要的功能,所以剩下的位就保留了下来,但是不确定我之后在扩充的时候不会用到;从这个原因上看,是可以修改保留位的默认值的,因为不会对其他硬件造成影响;
    但这只是理论上的不影响,具体是否会影响其他硬件,对于使用者来说只有在实际中观测才知道的;
    2.在网上,查询关于这方面的消息,有人就遇到过,修改了保留位造成了程序不时会出现未知错误,所以为了系统的稳定性,还是不要对保留位进行修改;
    结论----不推荐修改保留位。
    
六、HEX和BIN文件
    1.HEX文件中带有地址信息,所以下载时直接下载就行;BIN文件中没有地址信息,所以下载时需要选择起始地址和终止地址;
    2.HEX文件的大小并不是看到的文件的大小:原因1-HEX地址使用ASCII来表示数据;原因2-HEX文件本身还包含别的附加信息;
    3.BIN文件看到的大小就是最终下载到程序中的大小;
    
七、KEIL5调试中出现 #11-D: unrecognized preprocessing dir问题。
    1.原因是:include 拼写错误。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值