仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1087|回复: 8
打印 上一主题 下一主题

[其他Linux] 来谈谈:嵌进式Linux体系下工夫的完成

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 15:31:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
起首,明白一个成绩:

1、嵌进式体系板子上的工夫是用date尺度体系命令检察的,date是SHELL命令,比方busybox大概uClinux上的sash等。这个工夫是有运转起来的嵌进式LINUX软件保护的,实在就是内存中的一个全局变量,LINUX默许启动给这个全局变量赋值就是19700101如许的数值。
2、RTC芯片(良多是嵌进式处置器内置RTC模块,那末就是CPU外部存放器)外部的存放器保护的工夫值。
一样平常的,LINUX启动后,您能够经由过程date命令来设置变动体系工夫,但失落电就会丧失的,启动后又是1970如许的工夫了。若要能date设置后保留体系工夫,使得鄙人次重启后还能坚持的话,就必需有RTC+后备电池的软硬件撑持。
比方,我们PC上能够设置体系工夫,重启后也不会丧失,就是由于我们PC主板上有RTC撑持。
RTC能够是外接的一个芯片,比方罕见的X1226/1227等,它们就是经由过程I2C接各处理器上的。
固然,如今更多的情形是CPU内置RTC模块,如许您硬件计划的话就只需供应后备电池便可。
明白了体系工夫的两个观点后,我们来看看RTC的完成机制。
在嵌进式体系上,完成的办法能够天真多样,只需能到达终极的目标:
您可经由过程某种操纵猎取以后的准确的工夫,并且重启不会丧失。
那末看看几种完成机制。
在入手下手先容几种办法前,我们先申明一下软件工夫的体例:
我们的平台是嵌进式LINUX,要完成RTC撑持,则必需是“驱动+使用程序”的体例,而我们的驱动都倡议是接纳MODULES体例自力加载的体例,如许可不影响全部LINUX内核。
上面入手下手先容完成办法:
从下面能够看到,工夫实践上是两个中央同时在保护的,一个是RTC芯片外部存放器或CPU的RTC存放器;另外一个则是LINUX保护的工夫。LINUX的工夫重启就会丧失,而RTC因为有后备电池回护,则不会丧失,在板子断电后还能够持续保持计时。以是,最好了解的完成体例就是让LINUX内核启动的时分,从RTC芯片内里读取工夫值,赋给LINUX的工夫变量。如许LINUX一启动工夫就校订过去,不再是1970了。固然,如许做,就不克不及用自力的RTC驱动的MODULES情势了。而当您经由过程date命令设置LINUX工夫时,您还要修正date命令的代码,使之同时还要经由过程I2C修正RTC芯片外部存放器数值(或CPU外部存放器数值),固然了,如许仍是必要一个读写RTC的驱动的。
上面则是一个更简化的完成办法
即LINUX启动时,不从RTC芯片内里读取工夫,而您间接修正date命令的代码,让它不要从LINUX供应的接口读取,而是间接经由过程驱动从RTC内里间接读取。
别的,假如您的体系同意的话,您都能够不走date的线路,即读取体系工夫不必date命令也能够,能够本人间接写个读取工夫的函数,比方read_rtc/write_rtc,就用这两个函数代替date命令读取和设置体系工夫的功效。
呵呵,写了这么多,仿佛也没说分明,最初,人人记着:
我们看到的工夫,实践是在两个分歧的中央保护的
一个是LINUX保护的,一个是RTC芯片内里的。
如许就存在一个两个工夫同步的成绩,一个产生在LINUX启动的时分,必要从RTC内里猎取工夫;另外一个产生在您设置体系工夫的时分,必要两个同时变动。
固然了,两头一些猫腻就能够产生,比方您能够偷懒跳过LINUX工夫,让date大概您本人的代码间接读取RTC工夫,而完整不睬会LINUX的工夫(还让它是1970……吧)
在ARM9实行箱等板子上,我们是经由过程修正busybox的date.c代码来完成的的;而在HHGW-LITE-R3等HHPPC平台上则是经由过程本人写的writeRTC来作的。
前一种办法改动了体系运转体例,后一种则没有把硬件工夫同LINUX体系工夫接洽起来
</p>
尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
谁可相欹 该用户已被删除
沙发
发表于 2015-1-17 20:32:13 | 只看该作者
这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-30 14:22:42 | 只看该作者
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
莫相离 该用户已被删除
地板
发表于 2015-2-6 13:25:37 | 只看该作者
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
小妖女 该用户已被删除
5#
发表于 2015-2-16 07:09:51 | 只看该作者
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
柔情似水 该用户已被删除
6#
发表于 2015-3-5 01:41:17 | 只看该作者
为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?
海妖 该用户已被删除
7#
发表于 2015-3-11 22:24:43 | 只看该作者
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
爱飞 该用户已被删除
8#
发表于 2015-3-19 15:42:48 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
乐观 该用户已被删除
9#
发表于 2015-3-29 04:02:09 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表