关于单片机程序设计的几点

来源:本站
导读:目前正在解读《关于单片机程序设计的几点》的相关信息,《关于单片机程序设计的几点》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于单片机程序设计的几点》的详细说明。
简介:文章介绍了单片机程序设计中需要记牢的几个注意事项

需要的一些:

对于单片机程序,首先要对于要使用的单片机比较了解,对于硬件设计比较了解,对C编程比较熟悉;了解单片机是因为当需要设置某些寄存器的时候,会知道相应的设置方式,避免出现因为寄存器设置造成的不必要的调试时间。对硬件比较了解,因为硬件电路是程序运行的前提,如果硬件电路出现了问题,软件无论如何也跑不起来;对C比较熟悉,因为过了初始化以后主要工作就是由C来承担了;对于需要操作模块的了解与设置,知道相应的设置或操作引发的结果。

遗忘的死角:

最近在查看一段代码的时候,发现里边有一个潜在的递归操作,而且没有限制递归的次数。

对于在PC上运行的程序,很多时候是不用担心的,毕竟内存还是够用的。当然对于数据量比较大的时候,还是需要注意。

但是对于在单片机上运行的只有512字节栈空间的uC/OS系统的一个任务而言,如果发生了,很容易造成内存溢出。

确实,有时候使用递归会使问题更容易解决,但是它所带来的资源消耗也是很可观的。由于不知道何时终止,对于内存受限的系统而言,更像是一个定时**。

对于递归的使用,在很多时候还是不建议使用的。

虽然,它是我们C基础教材上经常出现的一种方法,但是它确实在很多时候都不适合使用。

关于Flash初始化及Fatfs初始化:如果遇到FR_NOT_ENABLED,则是没有正常挂载需要f_mount,挂载成功Flash;如果遇到FR_NO_FILESYSTEM,则需要f_mkfs初始化文件系统,创建Fat文件系统;但是如果遇到了f_mkfs成功了,这时调用f_open时,又出现了FR_NO_FILESYSTEM,该如何是好呢?f_mkfs的哪一点漏洞,会造成没有正确的返回?关于(3)的疑问,找到了是硬件焊接不牢固的问题。虽然(3)的问题解决了,但是在f_open的时候,却依旧返回FR_NO_FILE,即使创建文件,也返回同样的错误,为何?(5)的问题在代码上定位到ff.c的1029行,发现注释是Initialize the SFN entry失败。分析发现既然Flash可创建文件系统,即可写入,这一步通不过应该不是硬件的原因,可能是软件上的某个操作,导致了不正常的文件,于是重新初始化了文件系统,发现可以。应该是因为初始化完成后,没有关闭文件,导致再一次操作时,一直失败。这个时候需要先关闭文件,再次打开。当然,重新f_mkfs也是可以的。

提醒:《关于单片机程序设计的几点》最后刷新时间 2024-03-14 01:10:48,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于单片机程序设计的几点》该内容的真实性请自行鉴别。