2008小节一号
今天公司看东西,遇到点小问题,具体说明如下。
那个系统里面,有一个部分,是如检测部分,有一个简单的重要内容检查的函数。
什么是重要内容检查?汗,就是名字是CriticalROM,RAM的内容(等于没说)
系统中,有一部分,逻辑内容和数据内容需要保证其正确性。例如RAM或者ROM损坏引起的问题(当然几率很小)。通常简单的验证办法,就是 数据段内容用镜像值 验证。 代码段内容用累加验证。
重要的逻辑的处理函数是在以下的代码中的样子
#pragma section _APL_CriticalROM
void zhongYaoFuntion()
{
.....
}
#pragma section
前面的预编译命令的意思 是,以下这个函数,放在起始地址为_APL_CriticalROM的内存地址后面。
编译器link配置中,可以设置内存分段。
例如 我想把void zhongYaoFuntion()这个函数到设置地址H'000FFB00以后。
则可以设置section APL_CriticalROM = H'000FFB00. 当出现好几个函数,都设置了想放到地址H'000FFB00后的情况时,大家就按顺序放进去,一个接一个,编译结束以后,会有一个存储MAP信息的文件,里面会记录下这个section中这些函数的起始地址和结束地址还有长度。(一会说明中会用到)
言归正传。接下去讲。
当要检查代码段ROM内容的时候,如何获得代码段范围,是一个问题。普通写程序的时候,函数编译后的地址写程序的时候是不知道的,那个代码编译以后的二进制文件的校验结果当然更加不可能知道了。呵呵。
公司的处理是这样的,负责检查的软件的逻辑代码中,有一个静态数据区。比如在编译器里,设置好他的地址是H'FF00FFAB数据结构都是预先定义好的,(start, end, checkData),一共12字节(举例子而已,不要较真)。 全部编译完以后,会有一个程序文件,后缀名是sob(会被烧到汽车的ROM中,其实随便什么名字都无所谓),其实就是编译好的完全二进制文件,只有数据段才可能看的懂,呵呵。在汽车实机上,那个文件执行的时候是直接被启动的,具体流程大家自己去复习,不要我解释了吧。
继续言归正传。
其实公司的方法就是直接通过一个脚本,把MAP中的地址的的函数的起始,结束地址,以及这个函数地址范围内的在sob文件中的二进制内容加算之后的检查结果,按照预先定义好的格式,存到sob中H'FF00FFAB的地址以后。那样虽然在程序中解决不了的问题,但是至少最后的执行文件可以正确。
这个方法很汗,但是用c语言也想不出能有什么方法能解决这个问题。日本人ms对脚本语言特别热爱。从excel到文本编辑器。什么都喜欢用perl之类的脚本来修改。
虽然明白基本流程,但是对这个东西还是很不了解,毕竟这些脚本不是我写的,公司的人也不懂,都是电装本部的人写的。
呵呵,知道就好了,毕竟搞明白了一个事情,不过今天至少知道了组里哪些人对我不满,呵呵,那个该死的老头,算了。现在这个代理係长ms也看我不爽,哎,更没办法。
Comments
哈,好久不见,过来看看你的窝~~~貌似在日本过的还不错啊,车展的照片看上去变帅变MAN拉~呵呵
Posted by: yanhui | January 27, 2008 05:30 PM
哈,好久不见,过来看看你的窝~~~貌似在日本过的还不错啊,车展的照片看上去变帅变MAN拉~呵呵
Posted by: yanhui | January 27, 2008 05:30 PM
This whole situation is SO absurd. Your post strikes as serious for you only. What can we do but make jokes about it?
Posted by: Suzie Cheel | April 7, 2008 03:07 AM
Hey guys! You know what I think? I think that all written here is bullshit, real lie. They are making us believe it’s true, they are trying to express it like it was in reality. Don’t believe it if you are not insane! There’s nothing special in this site, they just express regular news with unusual words. They can make something shocking out of anything! Don’t trust them!
Posted by: Jane | April 9, 2008 07:04 PM
Your website is very interesting. I loved your website a lot. Thank you.
Posted by: payday loans edmonton | July 2, 2010 09:23 AM
www.niyujin.com is great! Payday loans are short term unsecured loans Through these loans you can derive finances in an instant to deal with any short term financial crisis The loans are fleible and are open to both borrowers with good credit as well as bad credit
Posted by: toronto payday loans | July 12, 2010 04:27 AM