一种固件的更新方法及装置制造方法及图纸

技术编号:8625910 阅读:147 留言:0更新日期:2013-04-25 22:58
本发明专利技术提供一种固件的更新方法及装置,涉及嵌入式Linux领域,以解决现有技术中存在的,固件更新难度较大的问题,该方法,包括:客户端进行固件下载,客户端将固件写入第二内存空间,更新非易失性随机访问存储器中的固件,第二内存空间为通过用户程序将固件在非易失性随机访问存储器中的地址空间映射到内存中的地址空间,由于通过用户程序将固件在非易失性随机访问存储器中的地址空间映射到内存空间,然后通过用户程序更新该内存空间,使得固件更新难度较小。

【技术实现步骤摘要】

本专利技术涉及嵌入式Linux领域,特别涉及一种固件的更新方法及装置
技术介绍
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应于系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在非易失性随机访问存储器NVRAM中的嵌入式处理器控制板,NVRAM可以是闪存flash、EROM或EPR0M,后续文档以flash为例进行说明。事实上,所有带有数字接口的设备,如通信系统、手表、微波炉、录像机、汽车等,都使用嵌入式系统。所有嵌入式系统都面临更新固件的需求,固件(Firmware)就是写入flash中的程序,通俗的理解就是“固化的软件”,客户端在收到固件更新命令后,对固件对应的flash中的存储块(比如mtdblockl)进行读写操作实现更新。具体而言,是将固件数据传入内核空间由内核中的驱动来更新固件数据,这需要依赖于内核对于存储该固件的设备的驱动支持,开发人员必须熟悉内核中驱动的编写方法(如注册设备等)才能够编写该设备的驱动程序来支持固件更新。由此可见现有技术中存在如下问题固件的更新难度较大。
技术实现思路
本专利技术的目的是针对现有技术中存在的,固件的更新难度较大的问题,提供一种固件的更新方法及装置。本专利技术实施例提供一种固件的更新方法,包括客户端进行固件下载;客户端将固件写入第二内存空间,更新非易失性随机访问存储器中的固件,第二内存空间为通过用户程序将固件在非易失性随机访问存储器中的地址空间映射到内存中的地址空间。进一步,客户端将下载的固件存入第一内存空间。进一步,客户端将下载的固件存入第一内存空间具体为客户端接收服务器下发的固件更新命令后,延时将下载的固件存入第一内存空间。进一步,客户端将下载的固件存入第一内存空间具体为客户端接收服务器下发的固件更新命令后将下载的固件存入第一内存空间,并设置更新标志位;还包括非易失性随机访问存储器中的固件更新完成后或固件下载失败后,取消更新标志位。进一步,还包括客户端将非易失性随机访问存储器中更新的固件进行加载。进一步,客户端将非易失性随机访问存储器中更新的固件进行加载具体为客户端加载前检查是否在向用户提供服务,若是则等待预定的时间重复进行加载检查,若否则将非易失性随机访问存储器中更新的固件进行加载。本专利技术实施例还提供一种固件的更新装置,包括下载模块,用于进行固件下载;更新模块,用于将固件写入第二内存空间,更新非易失性随机访问存储器中的固件,第二内存空间为通过用户程序将固件在非易失性随机访问存储器中的地址空间映射到内存中的地址空间。进一步,下载模块,还用于将下载的固件存入第一内存空间。进一步,下载模块,还用于接收服务器下发的固件更新命令后,延时将下载的固件存入第一内存空间。进一步,下载模块,还用于接收服务器下发的固件更新命令后将下载的固件存入第一内存空间,并设置更新标志位;还包括取消模块,用于非易失性随机访问存储器中的固件更新完成后或固件下载失败后,取消更新标志位。进一步,还包括加载模块,用于将非易失性随机访问存储器中更新的固件进行加载。进一步,加载模块,还用于加载前检查是否在向用户提供服务,若是则等待预定的时间重复进行加载检查,若否则将非易失性随机访问存储器中更新的固件进行加载。由于通过用户程序将固件在非易失性随机访问存储器中的地址空间映射到内存空间,然后通过用户程序更新该内存空间,使得固件更新难度较小。附图说明图1表示本专利技术实施例提供的方法流程图;图2表示本专利技术实施例提供的装置结构图。具体实施例方式下面结合实施例和附图对本专利技术进行说明,为了解决现有技术中的,固件的更新难度较大的问题,本专利技术实施例提供一种固件的更新方法及装置。本专利技术实施例提供一种固件的更新方法,如图1所示,包括如下步骤步骤101、客户端将下载的固件存入第一内存空间。步骤102、客户端将第一内存空间中的固件写入第二内存空间,更新闪存中的固件,第二内存空间为通过用户程序将固件在闪存中的地址空间映射到内存中的地址空间。步骤101具体实施时,服务器与客户端建立TCP (Transmission Control Protocol传输控制协议)连接后服务器可下发固件更新命令,包括对什么固件进行更新以及需要取得的文件名称等。客户端接收固件更新命令后,根据固件更新命令设置对应的更新标志位,用于标示需要进行固件更新,并自动设置一个随机延时时间如15秒,之后使用TCP协议下载完整固件数据到本地内存中的第一内存空间,如1FFF-3FFF。设置随机延时时间是为了保证,当有多个客户端需从服务器处下载固件时,在时间上有所不同,减轻服务器的负担。客户端将下载的固件存入第一内存空间的同时,设置更新标志位如设置标志位为“1”,以表明客户端正处在固件下载的阶段,flash中的固件更新完成后或固件下载失败后,则取消更新标志位,如设置标志位为“0”,表明客户端未处在固件下载的阶段。当然将下载的固件存入内存中,只是本实施例中的优选方案,下载的固件还可以存在flash中。存在第一内存空间中,只是为了后续的步骤102中,将固件写入到第二内存空间中时,由于是在内存的不同地址空间,对固件数据进行读写操作,使得读写操作更加快捷高效。步骤102具体实施时,通过网络得到要更新的完整固件数据后,客户端可以按预先设置好的对不同固件的更新方法来更新,如果内核支持对固件在flash分区的读写则直接向该flash分区写入及固件数据,如果内核不支持对该flash分区的读写,则由用户程序将相应的flash地址空间映射到内存中的第二内存空间,如4FFF-6FFF。同时通过自身提供的读写驱动,从第一内存空间中读取固件写入第二内存空间,完成对固件的更新,对映射后第二内存空间的操作就是对flash所在存储空间的操作,操作必须要按照芯片手册说明的方法进行。具体实施时,要确定固件所在的cpu寻址空间中的地址,即固件应在flash中的地址空间,固件在flash中存放的地址是开发阶段就定义完成的,该地址可能是一块flash或者是flash的一个分区,该地址空间可以根据flash和cpu的片选关系以及cpu手册对寻址空间分配的描述得到,然后将该flash占用的地址空间映射到内存中。映射方法举例如下首先执行 fd = open ( /dev/mem , 0_RDWR, O)然后执行 env_base = (env_t*)mmap (O,CFG_ENV_SIZE, PR0T_READ | PR0T_WRITE, MAP_SHARED, fd, env_addr),其中 fd 是第一步打开的文件描述符,env_addr是固件在flash中的地址空间的首地址,CFG_ENV_SIZE是固件在flash中的地址空间所占用的空间大小,env_base则是固件在flash中的地址空间映射到内存中的首地址,如果是对固件在flash中的地址空间操作,则操作以env_base为首地址的第二内存空间即可,对第二内存空间的读写操作会最终作用到实际固件所在的flash中的地址空间中,上述的程序即用户程序,举例完毕。映射完成后客户端就可以利用对该flash进行读写的驱动模块,本文档来自技高网...

【技术保护点】
一种固件的更新方法,其特征在于,包括:客户端进行固件下载;客户端将固件写入第二内存空间,更新非易失性随机访问存储器中的固件,第二内存空间为通过用户程序将固件在非易失性随机访问存储器中的地址空间映射到内存中的地址空间。

【技术特征摘要】
1.一种固件的更新方法,其特征在于,包括 客户端进行固件下载; 客户端将固件写入第二内存空间,更新非易失性随机访问存储器中的固件,第二内存空间为通过用户程序将固件在非易失性随机访问存储器中的地址空间映射到内存中的地址空间。2.根据权利要求1所述的方法,其特征在于,客户端进行固件下载具体为 客户端将下载的固件存入第一内存空间。3.根据权利要求2所述的方法,其特征在于,客户端将下载的固件存入第一内存空间具体为 客户端接收服务器下发的固件更新命令后,延时将下载的固件存入第一内存空间。4.根据权利要求2所述的方法,其特征在于,客户端将下载的固件存入第一内存空间具体为 客户端接收服务器下发的固件更新命令后将下载的固件存入第一内存空间,并设置更新标志位; 还包括 非易失性随机访问存储器中的固件更新完成后或固件下载失败后,取消更新标志位。5.根据权利要求1所述的方法,其特征在于,还包括 客户端将非易失性随机访问存储器中更新的固件进行加载。6.根据权利要求5所述的方法,其特征在于,客户端将非易失性随机访问存储器中更新的固件进行加载具体为 客户端加载前检查是否在向用户提供服务,若是则等待预定的时间重复进行加载检查,若否则将...

【专利技术属性】
技术研发人员:周斐张鑫乔美生赵巍王文魏金光张强
申请(专利权)人:北京市三希电子科技开发公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1