标签:定义变量 保存 ret 中断 需要 好玩的 tls 直接 编写
刚刚到新公司不到一个月,主要调试了泰凌微TLSR8359芯片。以前从没有接触过STM32系列以外的芯片。第一次接触泰凌微有点手忙脚乱,第一周的工作基本无用,在第二周周一全部推翻从来。
调试IIC时用的是GPIO模拟IIC,使用从前在32上使用过的程序,自己编写比较熟悉。但在移植过程中还是出现了问题,主要是没有集中注意力,没有认真分析,在if判断时忽略了else的情况。在IIC调通后(有ARK),实际运行程序时发现,可以写但是读的时候读出的数据都是0(有ark)。调试了一天软件心态都崩了,第二天从硬件下手发现引脚上拉电阻阻值过大,导致从设备驱动能力不足,无法输出高电平所以读到的数据都是0(万幸scl引脚可以输出高电平)。更换电阻后IIC正常,设备工作正常。
在调试flash时,自己比较混乱。想读flash手册,又想在网上找程序直接移植,最后在网上找了一个有细微差别的程序,经过修改后可以读写flash。但也遇到了问题。只能读写一个int型数据无法同时写多个(例如数组)。最后阅读手册发现是程序在擦除时只擦除了4k的空间。讲flash整片擦除后可以任意读写。但整片擦除很浪费时间。但flash只用于验证传感器工作是否正常所以并未钻研。同时在写一个long int的数据时也遇到了问题,最后通过将数字的每一位转化为字符实现功能。
调试无线功能时通过修改官方例程实现,比较简单并未遇到困难。
在调试TLSR8359低功耗时发现在从deep sleep模式wake up后,程序会从main函数开始执行(从头执行)。项目设计是在main函数开始时对器件进行初始化并使器件开始运行,然后进入低功耗模式,在一定时间后通过定时器wake up,wake up后继续执行(保存上次执行时的数据)一段时间再次进入sleep模式,再次唤醒后从接着执行(同样要求保存过往数据)。但TLSR8359的deep sleep每次唤醒后都会从main函数执行导致每次唤醒传感器都要被初始化。无法在满足公司所设低功耗条件下实现功能,暂时不知道下一步怎么做。
经过这一段时间的调试,对自己的总结如下:
1.集中注意力。还需要锻炼集中注意力的能力,虽然旁边有一个傻逼从八点半上班能一直咳嗦到八点半下班(只要坐在你工位,中间中断不超过5分钟。和领导说话从来不咳嗦●﹏●),就这么咳嗦确实是应该吃点治嗓子的药了(?ω?)。这段时间我一直在关爱残疾人,不敢太反抗生怕他自杀。但自己的注意力还是被他牵走了。离做到泰山崩于前色不变!傻逼坐于旁而心不乱还差很远。还要努力。其实有时候逗一逗他也挺好玩的,他不咳嗦了我就咳嗦一下他能连着咳嗦一个小时。也挺有意思的。不敢老逗他玩,主要是怕他想不开自杀。
2.细心。不管你移植的成语在上个板子上用了多长时间,移植到新的板子上就是新的程序,遇到问题时一定要一行一行仔细分析。不要太自信(?ω?)、
3.解决问题的先后顺序。先实现功能在抠细节。
4.一定不能忽视手册,一定要读手册。
5.自信点,老子最牛逼,老子天下第一哈哈哈哈哈哈哈
明天看看公司对这个项目有没有什么改变,低功耗
刚刚泰凌微的技术回复,使用_attribute_data_retention_来定义变量deep状态下数据保持
标签:定义变量 保存 ret 中断 需要 好玩的 tls 直接 编写
原文地址:https://www.cnblogs.com/zjw2030/p/12762632.html