c语言设计底层,【学习小总结】C语言的底层开发
【学习小总结】C语言的底层开发
(2011-05-04 20:46:15)
标签:
底层开发
杂谈
程序设计可以根据开发的对象的不同,可以分低级程序设计和高级程序设计。既然,有人把高级程序设计概括成“数据结构 + 算法 =
程序”,那么相应的低级程序设计应该是“寄存器 + 算法 = 硬件编程”。
在硬件编程中,模块化的思想也应该尤为注意,这样更有利于代码的复用及程序移植性的提高。比如,我在基于S3C2410做开发的时候,就可以对各个硬件的初始化,做相应的头文件。那么在做高层开发是就可以拿过来直接的使用,并且对于高层开发的人来说不必知道初始化的细节,只需要找相应的接口就OK了。另为,对于高层开发的程序也有了很好的移植性。
其实,底层硬件程序就是一些赋值语句,即写控制寄存器和数据寄存器来控制硬件正常工作。
在C做低级程序设计时候,应该注意:多使用使用宏,尽量避免直接二进制数据直接操作,可以减少错误的发生。如,可以将程序中使用频率很高的数据或者代码段都可以定义成宏,使用时也方便快捷,不容易出错。
此外,对于值我们可能要求其时时与内存中的一致,我就可以把它定义成volatile型的,这是编译器就不会对其做优化,程序执行中不在去Cache中读该数据,而是直接读内存。
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。
c语言设计底层,【学习小总结】C语言的底层开发相关推荐
- R语言︱H2o深度学习的一些R语言实践——H2o包
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言H2o包的几个应用案例 笔者寄语:受启发 ...
- 随机函数c语言对打,20165323 学习基础和C语言基础调查
20165323 学习基础和C语言基础调查 一.技能学习心得 1.你有什么技能比大多人更好? 我觉得我羽毛球打的还行,不能说打得比大多数人好,但是对于一些打羽毛球的要领还是掌握的. 2.针对这个技能的 ...
- C语言可以敲哪些小游戏,C语言可以写哪些小游戏?
C语言可以写哪些小游戏? C语言可以编手机游戏.你叫他去死不过我这有贪吃蛇的代码,你倒可以看看(用TC编译一定过( #包括 #包括 #包括 #包括 #包括 #定义输入7181 #定义ESC 283 # ...
- C 语言还值得学习吗?C 语言会过时吗?C 语言解惑
C 语言还值得学吗? 答案是肯定的. 第一,学习C有助于更好的理解C++,Java,C#,Perl以及其他基于C的特性的语言.第一开始就学习其他语言的程序员往往不能很好的掌握继承自C语言的基本特性. ...
- c语言设计思路和有点不足,C语言总结报告
1.当初你是如何做出选择计算机专业的决定的? 经过一个学期,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 当初报考计算机专业,是看到计算机专业在当今社会有良 ...
- 基于C语言设计的俄罗斯方块小游戏(VS2017运行)
(1)俄罗斯方块起源 <俄罗斯方块>(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏. 该游戏曾经被多家公司代理过.经 ...
- 想设计一个母亲节小程序c语言,用小程序做一张精美海报,对母亲说一句:祝您母亲节快乐!...
原标题:用小程序做一张精美海报,对母亲说一句:祝您母亲节快乐! 后天,母亲节. 是不是想对妈妈说一句"我爱你",却总是扭扭捏捏.吞吞吐吐.欲言又止? 互联网时代,很多介质都可以解决 ...
- 想设计一个母亲节小程序c语言,明天母亲节,用这款小程序,给妈妈送一张贺卡吧!...
原标题:明天母亲节,用这款小程序,给妈妈送一张贺卡吧! 小程序体验师:陈丹阳 妈妈,再打我一次吧. 明天就是一年一度的母亲节了,还没想好给妈妈送什么吗? 现在,「知晓程序」就给你推荐一款贺卡小程序「小 ...
- python怎么学习一门语言_如何学习Python这一门语言
Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 如果你选择了自学,我想给你提几点建议: 找浅显易懂,例程比较好的教程,从头到尾看下去.不要看很多本,专注于一本.把里面的例程 ...
- 使用c语言测试大端和小端,C语言*符号使用及大端法小端法测试
工具:Microsoft Visual C++ 6.0 例子: int a = 1; int* b = &a; C语言规定a表示存储单元中的数据,&a表示存储单元的地址,b存储的就是a ...
最新文章
- Linux 内核抓包功能实现基础(五) 常见问题解析
- ES6实用方法Object.assign、defineProperty、Symbol
- C语言试题八十三之输出左下三角形九九乘法表
- CF613D-Kingdom and its Cities【虚树,LCA,树链剖分,贪心】
- the process cannot access the file because it is being used by another process
- 基于bim的施工管理平台
- ET6.0服务器框架学习笔记(一、启动配置)
- MySQL- 使用PreparedStatement接口,实现数据表的更新,查询操作
- php微信商家分账API
- 版本控制Git 黑马尚硅谷
- Tark与AjM完美结合,解决全球支付难题
- 在线制作平台H5制作
- OpenCV4-C++读图、显示图
- 一种射频卡读写原理及实现
- SQLServer ODBC 驱动的区别
- 车载FMCW雷达的距离-多普勒检测基本原理
- ffmpeg视频音频处理
- 新码农和老码农(爆笑)
- Cxcore绘图函数
- DuDuTalk:如何用智慧工牌打造汽车智慧门店
热门文章
- 【clickhouse】ClickHouse中的低基数(LowCardinality)类型
- 【Elasticsearch】elasticsearch 分片
- 【Kafka】kafka检查消费者位置
- 缓存中间件-Memcache命令介绍
- 【OSGI】Error osgi xx Invalid value for DynamicImport-Package dynamic.import.pack
- 【Flink】Flink checkpoint expired before completing
- SpringBoot之AOP之基本使用
- spark学习-51-Spark的task任务的运行
- 几款炫酷的IDEA皮肤主题,大爱!
- 这样的 Spring Cloud 微服务项目太牛了!