免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pmerofc

[C] C语言可以直接对硬件进行操作吗? [复制链接]

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2012-10-25 16:28 |显示全部楼层
片选和地址没关系,脚是分开的。也不仅是内存片子才有片选和地址。

>>>C语言有这种能力的原因是,它内置了最基本的抽象:对内存的操作。
哪一个图灵机不操作内存?!图灵给的理论,诺依曼设计的体系,那条图灵能用笔画出来的纸带就是现在100元4G的内存。C的抽象体系怎么map到物理机器上是编译器决定的,因此存在交叉编译。
反倒是chruch的东西没出现这个单词。

>>>片选
内存颗粒是一片一片的,看内存条就知道。单端口操作的条子需要在几颗片子里面选一片激活:enable,就是片选。。。

论坛徽章:
11
摩羯座
日期:2013-09-16 11:10:272015亚冠之阿尔萨德
日期:2015-06-12 22:53:29午马
日期:2014-04-15 11:08:53亥猪
日期:2014-03-02 23:46:35申猴
日期:2013-12-06 22:07:00亥猪
日期:2013-11-28 12:03:13双鱼座
日期:2013-11-21 14:43:56亥猪
日期:2013-10-23 10:55:49处女座
日期:2013-10-17 18:15:43午马
日期:2013-09-27 17:40:4215-16赛季CBA联赛之青岛
日期:2016-06-22 00:45:55
发表于 2012-10-25 16:37 |显示全部楼层
本帖最后由 Ager 于 2012-10-25 16:41 编辑
g__gle 发表于 2012-10-25 14:05
。C语言有这种能力的原因是,它内置了最基本的抽象:对内存的操作。如果所有的硬软接口都是以内存的形式暴露,那么C语言足以做一切。一旦有C语言内置抽象处理不了的东西,比如访问没有地址只有名字的寄存器,或者其它特殊指令,它就玩不转了。


顶一下!所以 …… 这个段子写得是没错的:

@薛非_品悟C
#《C程序设计伴侣》# 1.3A "在对硬件资源的操作上,C语言更加直接,而C++语言则相对温和一些。" 有人知道这是在说啥吗?
  1. 大虾,要段子不?来了 ——

  2. 内存悲,程序员总是用递归。
  3. 内存愁,堆栈滚出个大皮球。
  4. 内存喜,数据没有被清洗。
  5. 内存乐,一根指针往里戳。


  6. *-> *-> *->
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-10-25 21:42 |显示全部楼层
“人可以拉屎” 是不对的,应该说“人的屁股可以拉屎” 。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-10-25 21:44 |显示全部楼层
回复 20# starwing83

受教!这么写对系统有一览总山小的感觉,非常厉害

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2012-10-25 21:46 |显示全部楼层
pmerofc 发表于 2012-10-25 21:35
很多大侠在这个帖子里发表了珍贵的灼见
很受教育和启发
现在我基本断定

.......
要想让语言如何控制硬件,取决于硬件工程师如何设计硬件+软件工程师如何设计软件
所谓C语言可以控制硬件,乍听上去其实没什么问题,对于电子工程师来说再熟悉不过了.
何必钻那个牛角尖,不如你就用最简单的最经典的51单片机学着在面包板上搭几个led灯点点,心里会清楚的多,在这里纸上谈兵有何用.

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2012-10-25 21:58 |显示全部楼层
本帖最后由 cjaizss 于 2012-10-25 21:59 编辑
cjaizss 发表于 2012-10-25 21:46
.......
要想让语言如何控制硬件,取决于硬件工程师如何设计硬件+软件工程师如何设计软件
所谓C语言可以 ...

另外,C语言本来当初就被当成"高级汇编"的,用来统一UNIX的设计,这本来就基本上是它设计的初衷.
能控制控制硬件又算的了什么?值得大张旗鼓拿出来说事吗?

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
发表于 2012-10-25 23:07 |显示全部楼层
cjaizss 发表于 2012-10-25 21:46
.......
要想让语言如何控制硬件,取决于硬件工程师如何设计硬件+软件工程师如何设计软件
所谓C语言可以 ...


呵呵,不用这么认真。没有接触过的人,对于C直接操作端口/寄存器是不理解的。

论坛徽章:
0
发表于 2012-10-26 01:29 |显示全部楼层
假设C语言能直接控制硬件,这里就存在一个让人疑惑的地方,C语言的源程序不需要经过编译、链接、加载就能让各种硬件正常工作?反正“龙书”里不是这么讲的。个人打开编译好的执行文件,没看到C语言,只看到一堆01。记忆中当年为了让286、386里的8253配合PCB板上的8259工作,编好的汇编程序也还是要编译的。而让8253、8259工作的本质不是高低电位吗?
龙书.jpg

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
发表于 2012-10-26 09:00 |显示全部楼层
别吵吵啦,这句话反过来说不久靠谱了么:大多数对硬件操作的程序都是用c语言完成的。

论坛徽章:
30
摩羯座
日期:2013-12-23 17:28:38牛市纪念徽章
日期:2015-07-13 11:35:582022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57青铜圣斗士
日期:2015-11-27 17:45:3815-16赛季CBA联赛之天津
日期:2016-02-15 13:44:3615-16赛季CBA联赛之江苏
日期:2018-05-02 16:56:2715-16赛季CBA联赛之辽宁
日期:2018-08-08 13:41:1015-16赛季CBA联赛之深圳
日期:2018-10-02 18:05:0315-16赛季CBA联赛之天津
日期:2019-05-31 15:05:0615-16赛季CBA联赛之北京
日期:2022-06-30 13:34:1115-16赛季CBA联赛之同曦
日期:2022-07-06 19:33:5415-16赛季CBA联赛之吉林
日期:2022-12-28 14:16:22
发表于 2012-10-26 09:54 |显示全部楼层
所谓的操作硬件就是操作某些寄存器和一些控制命令吧,感觉不是虚拟机语言基本都可以吧,如果你要扯操作系统,就当我什么都没说
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP