C语言及常用算法
我很倔
这个作者很懒,什么都没留下…
展开
-
结构体中动态内存的管理(malloc和free)
C语言中内存的管理主要是依据malloc和free实现的,其中malloc主要是实现内存的分配,而free则是实现内存的释放。虽然这是我们已经很熟悉的,但是还是存在一些问题。特别是当结构体中存在指针的情况下,各种问题也就会展现出来。其中最大的问题是:结构体中指针变量没有指向一块合法的内存空间,就对指针参数进行操作,这也是很多C语言程序员经常犯的错误。简单的实例如下:转载 2016-07-26 10:21:12 · 1278 阅读 · 0 评论 -
从uart到serial-ringbuff(环形缓存)
最近在写一个serial 的应用想起以前写过的一些单片机上的uart 程序,有着许许多多的圈圈点点的,也就来扒一扒串口机制的事情了。 学习单片机都会接触到串口这个东西,多数的教程都是讲讲如何把寄存器配置好,然后可以发出数据、接收数据,而对如何应用基本完全不谈。而其实不管是哪一类CPU,串口的模式基本相同,毕竟这东西从单片机诞生至今也算是个白发老头的年纪了。uart 寄存器配置不说,每个CPU有自己...转载 2016-10-17 10:10:01 · 9320 阅读 · 0 评论 -
ARM中的RO段、RW段和ZI段的区别
1 前言 一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。 要了解RO,RW和ZI需要首先了解以下知识。2 ARM程序的组成 此处所说的“ARM程序”转载 2016-08-10 19:52:20 · 450 阅读 · 0 评论 -
延长FLASH和EEPROM芯片写入次数的小方法
开发电子产品时,常常需要断电后保存某些数据,这就需要使用FLASH或EEPROM芯片,这两种芯片,可擦除的次数是有限制的,通常FLASH为10万次,EEPROM要多一点,为100万甚至1000万次。FLASH的擦除不能单个字节进行,有一个最小单位,存储容量相对比较大,适合大量数据的存储;EEPROM可以单个字节进行擦除,存储容量不大,只适合存储少量的设置数据。 先以FLA转载 2016-07-11 14:56:47 · 29222 阅读 · 4 评论