【学习小总结】C语言的底层开发

(2011-05-04 20:46:15)

标签:

底层开发

杂谈

程序设计可以根据开发的对象的不同,可以分低级程序设计和高级程序设计。既然,有人把高级程序设计概括成“数据结构 + 算法 =

程序”,那么相应的低级程序设计应该是“寄存器 + 算法 = 硬件编程”。

在硬件编程中,模块化的思想也应该尤为注意,这样更有利于代码的复用及程序移植性的提高。比如,我在基于S3C2410做开发的时候,就可以对各个硬件的初始化,做相应的头文件。那么在做高层开发是就可以拿过来直接的使用,并且对于高层开发的人来说不必知道初始化的细节,只需要找相应的接口就OK了。另为,对于高层开发的程序也有了很好的移植性。

其实,底层硬件程序就是一些赋值语句,即写控制寄存器和数据寄存器来控制硬件正常工作。

在C做低级程序设计时候,应该注意:多使用使用宏,尽量避免直接二进制数据直接操作,可以减少错误的发生。如,可以将程序中使用频率很高的数据或者代码段都可以定义成宏,使用时也方便快捷,不容易出错。

此外,对于值我们可能要求其时时与内存中的一致,我就可以把它定义成volatile型的,这是编译器就不会对其做优化,程序执行中不在去Cache中读该数据,而是直接读内存。

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

c语言设计底层,【学习小总结】C语言的底层开发相关推荐

  1. R语言︱H2o深度学习的一些R语言实践——H2o包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言H2o包的几个应用案例 笔者寄语:受启发 ...

  2. 随机函数c语言对打,20165323 学习基础和C语言基础调查

    20165323 学习基础和C语言基础调查 一.技能学习心得 1.你有什么技能比大多人更好? 我觉得我羽毛球打的还行,不能说打得比大多数人好,但是对于一些打羽毛球的要领还是掌握的. 2.针对这个技能的 ...

  3. C语言可以敲哪些小游戏,C语言可以写哪些小游戏?

    C语言可以写哪些小游戏? C语言可以编手机游戏.你叫他去死不过我这有贪吃蛇的代码,你倒可以看看(用TC编译一定过( #包括 #包括 #包括 #包括 #包括 #定义输入7181 #定义ESC 283 # ...

  4. C 语言还值得学习吗?C 语言会过时吗?C 语言解惑

    C 语言还值得学吗? 答案是肯定的. 第一,学习C有助于更好的理解C++,Java,C#,Perl以及其他基于C的特性的语言.第一开始就学习其他语言的程序员往往不能很好的掌握继承自C语言的基本特性. ...

  5. c语言设计思路和有点不足,C语言总结报告

    1.当初你是如何做出选择计算机专业的决定的? 经过一个学期,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 当初报考计算机专业,是看到计算机专业在当今社会有良 ...

  6. 基于C语言设计的俄罗斯方块小游戏(VS2017运行)

    (1)俄罗斯方块起源 <俄罗斯方块>(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏.        该游戏曾经被多家公司代理过.经 ...

  7. 想设计一个母亲节小程序c语言,用小程序做一张精美海报,对母亲说一句:祝您母亲节快乐!...

    原标题:用小程序做一张精美海报,对母亲说一句:祝您母亲节快乐! 后天,母亲节. 是不是想对妈妈说一句"我爱你",却总是扭扭捏捏.吞吞吐吐.欲言又止? 互联网时代,很多介质都可以解决 ...

  8. 想设计一个母亲节小程序c语言,明天母亲节,用这款小程序,给妈妈送一张贺卡吧!...

    原标题:明天母亲节,用这款小程序,给妈妈送一张贺卡吧! 小程序体验师:陈丹阳 妈妈,再打我一次吧. 明天就是一年一度的母亲节了,还没想好给妈妈送什么吗? 现在,「知晓程序」就给你推荐一款贺卡小程序「小 ...

  9. python怎么学习一门语言_如何学习Python这一门语言

    Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 如果你选择了自学,我想给你提几点建议: 找浅显易懂,例程比较好的教程,从头到尾看下去.不要看很多本,专注于一本.把里面的例程 ...

  10. 使用c语言测试大端和小端,C语言*符号使用及大端法小端法测试

    工具:Microsoft Visual C++ 6.0 例子: int a = 1; int* b = &a; C语言规定a表示存储单元中的数据,&a表示存储单元的地址,b存储的就是a ...

最新文章

  1. Linux 内核抓包功能实现基础(五) 常见问题解析
  2. ES6实用方法Object.assign、defineProperty、Symbol
  3. C语言试题八十三之输出左下三角形九九乘法表
  4. CF613D-Kingdom and its Cities【虚树,LCA,树链剖分,贪心】
  5. the process cannot access the file because it is being used by another process
  6. 基于bim的施工管理平台
  7. ET6.0服务器框架学习笔记(一、启动配置)
  8. MySQL- 使用PreparedStatement接口,实现数据表的更新,查询操作
  9. php微信商家分账API
  10. 版本控制Git 黑马尚硅谷
  11. Tark与AjM完美结合,解决全球支付难题
  12. 在线制作平台H5制作
  13. OpenCV4-C++读图、显示图
  14. 一种射频卡读写原理及实现
  15. SQLServer ODBC 驱动的区别
  16. 车载FMCW雷达的距离-多普勒检测基本原理
  17. ffmpeg视频音频处理
  18. 新码农和老码农(爆笑)
  19. Cxcore绘图函数
  20. DuDuTalk:如何用智慧工牌打造汽车智慧门店

热门文章

  1. 【clickhouse】ClickHouse中的低基数(LowCardinality)类型
  2. 【Elasticsearch】elasticsearch 分片
  3. 【Kafka】kafka检查消费者位置
  4. 缓存中间件-Memcache命令介绍
  5. 【OSGI】Error osgi xx Invalid value for DynamicImport-Package dynamic.import.pack
  6. 【Flink】Flink checkpoint expired before completing
  7. SpringBoot之AOP之基本使用
  8. spark学习-51-Spark的task任务的运行
  9. 几款炫酷的IDEA皮肤主题,大爱!
  10. 这样的 Spring Cloud 微服务项目太牛了!