自己写函数库

大家现在写 程序,是不是都是用新唐提供的函数库?在体验 开发板的一开始,我也是使用函数库,毕竟这个太方便了。
可是有一天,我发现一个只使用时钟和IO以及 调试 串口的程序居然查过了16k的时候,我震惊了!!!天啊,这么一个简单的 功能,需要这么多的程序空间吗???
抱着怀疑的态度,我读了新唐提供的库。看完后,一个字:大!这个大是指功能全,副作用就是代码太多了,生成的程序代码当然就小不下来。

我把学51的精神拿出来了,我自己写 驱动

我知道这个过程是非常漫长,也是非常无趣的,但是这个工程绝对是 学习 芯片的最佳途径!

书接上文,我这开始写的驱动是RTC、串口、按键和 LED驱动。

代码就不贴了,我的注释也写的比较全。直接上代码吧。
下面这行是KEIL 编译后的代码统计:
Program Size: Code=3340 RO-data=224 RW-data=104 ZI-data=1120  
看到了吗,Code=3340,这个与使用函数库可不是一个数量级的。

这个只是一个开始,我的目标是把日常使用的外设驱动都写完。

附件是这个 keil的工程,是 4.22版本的Keil。
最后,新年到了祝各位网友新年快乐……

ps:可能有网友会提出这样的 工作没有实际的意义,其实我觉得,如果是一个 公司或这团体,完善自己的驱动库,才是王道啊!而且这样的积累,当形成量以后,绝对是好东西!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[MicroPython]stm32f407控制DS18B20检测温度

2019独角兽企业重金招聘Python工程师标准>>> 1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法。 2. 进一步学习编制数据输出程序的设计方法。 3. 学习DS18B20的接线方法,并利用DS18B20检测当前温度。 2.所需元器件 F407Micropython开发板…

带你理解Spring AOP

AOP概述 在我们的日常开发中,除了正常业务逻辑外,还可能经常会需要在业务逻辑的特定位置加入日志,以便于调试和问题分析。但是这种插入日志的逻辑和业务逻辑间并不存在连续性和依赖性,这种逻辑侵入随着项目的不断发展&#xff0c…

10.20随笔

ES6 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。 这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但…

极客招募令!兄弟杯区块链极客竞技大赛在上海等您来战!

据悉,由国内首家区块链技术社区区块链兄弟主办,旺链科技、离子链、中国云体系产业创新战略联盟、无退社区、指旺金科等单位强力支持,HiBlock区块链社区、火球财经、布洛克财经、海豚区块链、区块网等百家技术社区和媒体通力合作的兄弟杯区块链…

Java中Web程序修改配置文件不重启服务器的方法

见:http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 另:http://ekisstherain.iteye.com/blog/1701463 jrebel 、JavaRebel是什么,见另一博客:jrebel/JavaRebel 开发环境 1. JDK 2. MyEclipse 3. Tomcat 4. Struts2 5.…

ffmpeg-0.6.3 移植到 windows 开源代码

ffmpeg-0.6.3开源编码解码库,从linux下移植到windows vs2005,全部开源。 需要 Intel C Compile 和 开源的SDL库支持,由于 Intel C Compile支持C99语法,所以源代码改动很小很小。 主要的修改 1:添加了linux中有而wind…

一起唠唠分布式锁

(1)分布式锁和分布式事务的区别 1.分布式锁是在集群环境下,用来控制不同机器对全局共享资源的访问。 2.分布式事务是在集群环境下,用来保证全局事务的一致性,保证多个数据库的数据整体上能正确的从一个一致性状态转到…

luogu2577/bzoj1899 午餐 (贪心+dp)

首先,应该尽量让吃饭慢的排在前面,先按这个排个序 然后再来决定每个人到底去哪边 设f[i][j]是做到了第i个人,然后1号窗口目前的总排队时间是j,目前的最大总时间 有这个i和j的话,再预处理出前i个人的排队总时间sum[i]&a…

wpf中xps文档合并功能实现

原文:wpf中xps文档合并功能实现跟着上一篇的xps文档套打的文章,近期一直在研究xps打印技术,其中用户提到了一个需求,要求能够多页面进行打印,我的想法是,先生成xps文件,然后将文件读取出来以后,…

DCT(离散余弦变换(DiscreteCosineTransform))

离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦…

从源码看ConcurrentHashMap

简介 ConcurrentHashMap是线程安全的HashMap实现,这里主要研究JDK8后的ConcurrentHashMap,下面是ConcurrentHashMap的简单结构: ConcurrentHashMap基于HashMap的基本逻辑,通过CAS synchronized 来保证并发安全性。ConcurrentHas…

代码重构的方法

见:http://blog.csdn.net/u011889786/article/details/51865344 见:http://blog.csdn.net/weiky626/article/details/1602691 一.提取子函数 说白了就是一个大函数里,可以根据不同功能分成几个小函数,因为说不定,其他…

android 去掉标题栏、状态栏、横屏

// 去掉标题栏supportRequestWindowFeature(Window.FEATURE_NO_TITLE);// 全屏、隐藏状态栏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 横屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION…

Spring Boot 整合Mybatis (一)

2019独角兽企业重金招聘Python工程师标准>>> 新建spring-boot项目&#xff0c;相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><de…

x264 的 cache详解

在这里和下一级别的分析中有必要先讲一下这个h->mb.cache&#xff08;没法讲&#xff0c;就是cache!&#xff09;。 x264_macroblock_cache_load将参考帧中某位置的&#xff08;重建后&#xff09;数据保存进cache&#xff0c;供参考和反复使用。 x264_macroblock_cache_s…

同步/异步阻塞/非阻塞

平时开发中经常会听大家说到什么同步阻塞、异步非阻塞等等名词&#xff0c;这里我谈下自己对这两个名词的理解&#xff0c;仅仅是个人观点&#xff0c;并不一定正确。 1.阻塞/非阻塞 我认为判定阻塞还是非阻塞&#xff0c;取决于线程所做的操作是否需要将线程挂起等待。 举个…

Repeater的使用

1.页面代码 如果要分页&#xff0c;那么页面开头必须写&#xff08;<% Register Src"~/Controls/Page.ascx" TagName"Page" TagPrefix"uc1" %>&#xff09; 并且分页&#xff0c;页脚<uc1:Page ID"Page2" runat"server&…

springboot 整合 mongodb实现 批量更新数据

现需求&#xff1a;需要批量将1000个数据先查询在更新到mongodb&#xff08;如果查询不到数据&#xff0c;则添加数据&#xff09; 1&#xff1a;工具类BathUpdateOptions 1 import org.springframework.data.mongodb.core.query.Query;2 import org.springframework.data.mong…

【开题报告】基于微信小程序的校园资讯平台的设计与实现

1.选题背景与意义 随着移动互联网的快速发展&#xff0c;微信成为了人们日常生活中不可或缺的工具之一。在校园生活中&#xff0c;学生们对于校园资讯的获取和交流需求也越来越高。然而&#xff0c;传统的校园资讯发布方式存在信息不及时、传播范围有限等问题&#xff0c;无法…

三种Cache写入方式原理简介

三种Cache写入方式原理简介 在386以上档次的微机中&#xff0c;为了提高系统效率&#xff0c;普遍采用Cache&#xff08;高速缓冲存储器&#xff09;&#xff0c;现在的系统甚至可以拥有多级Cache。Cache实际上是位于CPU与DRAM主存储器之间少量超高速的静态存储器&#xff08;S…