随笔---

1.malloc函数在cortex-M3内核的STM32F407芯片中,进行测试时,如果申请的字节数≤4,则会造成下一次调用malloc()时,内存分配失败。大致原因时是因为当申请的字节数≤4时,返回的地址只是分配了8字节的配置项(自定义的),无实际内存分配。比较难懂,需仿真测试。

2.Cortex-M3的堆栈都是按照8字节对齐。这点暂时存疑,有时间再仔细验证。

3.c库的函数都是弱定义,但是如果有使用库函数中的任一函数,则函数都是强定义。即调用了库的free(*)函数,手动编写malloc(size_t)函数,会造成函数重定义;

4.关于变量类型对数据判断的影响。当变量的类型为8位数据类型时,大部分芯片会自动强制转化成16位的有符号数据类型,但当变量为16位数据类型,不会自动执行强制转化,需要手动转化。所以,建议进行逻辑运算时,所有的数据类型都进行手动强制转化。

5.顺道总结一下电容的充放电过程吧。只是初步总结,暂时无理论支持,也没有实操验证。电容充到0.67E的时间为τ,电容放点到0.37E的时间为τ。0.67E中的E对应的是充电电压,0.37E中的E对应的是放电初始时的电压。所以,如果信号脉冲的频率高于截止频率,则如果充电的脉冲小于τ,则电容还是会继续充电,只是充电速度比较慢,即为积分电路。此结论仅针对低通电路。如果脉冲的频率≤截止频率,则有可能充电失效。有时间再验证这个吧。。。

6.内存对齐是需要慎重考虑的问题。除了提高系统的性能之外,还能避免在移植的过程中,因为平台的对齐方式不同,造成硬件错误。此类问题的排查,是否有方法?即如果出现内存不对齐导致的硬件错误,该如何排查?使用最笨的屏蔽大法?

7.针对M0的芯片,STM32F030系列,当设置为奇校验或者偶校验时,需要将数据位设置为9位长度,因为默认把校验位也当做数据位处理

。。。。。暂时没想到,后续再补充吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值