[0039] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0040] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0041] 请参阅图1,本发明实施例提供一种ONU系统中的程序调试方法,适用于Linux系统,所述ONU系统中的程序调试方法包括:
[0042] S101,所述Linux系统加载安装并开启简单文件传输协议(Trivial File Transfer Protocol,TFTP)服务系统和网络文件系统(Network File System,NFS)。网络文件系统(Network File System,NFS)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。
[0043] S102,所述Linux系统打开所述网络文件系统的共享目录配置文件,并将需要共享的文件目录及相关的权限设置写入所述共享目录配置文件中。
[0044] S103,所述Linux系统在Linux会话框中进入开发目录,对所述开发目录下的工程项目进行编译配置。
[0045] 进一步,参见图2所示,所述Linux系统对所述开发目录下的工程项目进行编译配置的一种实现过程包括:
[0046] S201,载入当前使用的配置文件Profile;
[0047] S202,选择所述Profile中的Root file system selection选项(即根文件系统选项),将所述Root file system selection选项中的SQUASHFS(SquashFS是一套基于Linux内核使用的压缩只读文件系统)参数修改为NFS(网络文件系统)参数;
[0048] S203,选择所述Profile中的Driver selection选项(驱动选项),将所述Driver selection选项中的Ethernet(以太网)项的参数修改为<*>,将所述驱动选项中的以太网项的参数M修改为所需值;
[0049] S204,保存修改后的Profile;
[0050] S205,清理所述开发目录下的整个工程项目;
[0051] S206,利用所述修改后的Profile对所述整个工程项目进行编译。
[0052] S104,所述Linux系统进入本地命令行将第一文件拷贝至所述简单文件传输协议服务系统的根文件目录中,以便加电启动后的ONU通过网络从所述根文件目录加载所述Linux系统的内核镜像。
[0053] 进一步,参见图3所示,所述加电启动后的ONU通过网络从所述根文件目录加载所述Linux系统的内核镜像的一种实现过程包括:
[0054] S301,所述Linux系统控制加电启动后的ONU停留在命令行阶段。
[0055] S302,所述Linux系统使用c命令(即修改命令)修改Bootloader(启动加载系统)的启动配置参数。
[0056] S303,所述Linux系统在所述启动配置参数修改完成后,使用reset命令(即重置命令)重启所述ONU,以便所述ONU自动挂载所述网络文件系统为自身的根文件系统。
[0057] S105,在所述Linux系统的内核加电运行后,利用CPE(高速无线网关)通过网络将所述需要共享的文件目录挂载在自身的根目录,以便所述CPE(高速无线网关)将所述需要共享的文件目录的相关程序调入自身的内存运行。CPE(高速无线网关)就是一种将高速4G信号转换成平板电脑、智能手机、笔记本等移动终端通用的WiFi信号的设备,可同时支持多部终端上网,大小相当于一本书,在有4G信号覆盖的地方,插上电源就能使用,不必拉网线,使用和携带都很方便。
[0058] 本发明涉及到ONU系统中程序调试的方法,其通过利用Bootloader提供的tftp服务和Linux的网络文件系统NFS来调试ONU系统中的开发程序,这种方法无需把编译的image烧录到ONU板子上,当修改了代码中的某个地方后,只需要编译一下,然后重启ONU就可以实现调试了,ONU中使用的kernel和文件系统完全是在开发者本地的PC机上。这样,就省去了烧录的时间,修改的东西马上就能得到验证。
[0059] 本发明所述的ONU系统中的程序调试方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
[0060] 本发明还提供一种ONU系统中的程序调试系统,所述ONU系统中的程序调试系统可以实现本发明所述的ONU系统中的程序调试方法,但本发明所述的ONU系统中的程序调试方法的实现装置包括但不限于本实施例列举的ONU系统中的程序调试系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
[0061] 参见图4所示,所述ONU系统中的程序调试系统500的一种实现场景为:所述ONU系统中的程序调试系统500与CPE 300通信相连,所述CPE 300与ONU板子100通信相连。
[0062] 参见图5所示,所述ONU系统中的程序调试系统500适用于Linux系统,所述ONU系统中的程序调试系统500包括:加载模块510,写入模块520,配置模块530,拷贝模块540,控制模块550。
[0063] 所述加载模块510加载安装并开启简单文件传输协议服务系统和网络文件系统。
[0064] 所述写入模块520与所述加载模块510相连,打开所述网络文件系统的共享目录配置文件,并将需要共享的文件目录及相关的权限设置写入所述共享目录配置文件中。
[0065] 所述配置模块530与所述写入模块520相连,在Linux会话框中进入开发目录,对所述开发目录下的工程项目进行编译配置。
[0066] 进一步,参见图6所示,所述配置模块530包括:载入单元531,第一修改单元532,第二修改单元533,保存单元534,清理单元535,编译单元536。
[0067] 所述载入单元531载入当前使用的Profile。
[0068] 所述第一修改单元532与所述载入单元531相连,选择所述Profile中的Root file system selection选项,将所述Root file system selection选项中的SQUASHFS参数修改为NFS。
[0069] 所述第二修改单元533与所述第一修改单元532相连,选择所述Profile中的Driver selection选项,将所述Driver selection选项中的Ethernet项的参数修改为<*>。
[0070] 所述保存单元534与所述第二修改单元533相连,保存修改后的Profile。
[0071] 所述清理单元535与所述保存单元534相连,清理所述开发目录下的整个工程项目。
[0072] 所述编译单元536与所述清理单元535和保存单元534分别相连,利用所述修改后的Profile对所述整个工程项目进行编译。
[0073] 所述拷贝模块540与所述配置模块530相连,进入本地命令行将第一文件拷贝至所述简单文件传输协议服务系统的根文件目录中,以便加电启动后的ONU通过网络从所述根文件目录加载所述Linux系统的内核镜像。
[0074] 所述控制模块550与所述拷贝模块540相连,所述控制模块控制加电启动后的ONU停留在命令行阶段,使用c命令修改Bootloader的启动配置参数,在所述启动配置参数修改完成后,使用reset命令重启所述ONU,以便所述ONU自动挂载所述网络文件系统为自身的根文件系统。
[0075] 在所述Linux系统的内核加电运行后,所述Linux系统利用CPE通过网络将所述需要共享的文件目录挂载在自身的根目录,以便所述CPE将所述需要共享的文件目录的相关程序调入自身的内存运行。
[0076] 本发明实施例所述的ONU系统中的程序调试方法的一种具体实现过程为:
[0077] 1)在调试ONU产品的LINUX系统PC机上已经安装并且打开TFTP server和NFS server服务,确保调试程序可以正确的运行。
[0078] 2)找到NFS服务器的共享目录配置文件(一般而言是/etc/exports文件),使用vi或者其它的文本编译器打开该共享目录配置文件,然后将需要共享的文件目录及权限设置写入到该共享目录配置文件中。比如:/opt/bcm963xx/targets/96358GW/fs 192.168.1.*(rw,no_root_squash)/opt/bcm963xx/targets/96358GW/f s”为需要共享或者挂载的目录。CPE加电启动,当内核起来之后,CPE会通过网络将该需要共享或挂载的目录挂载为其根目录,之后运行的所有程序(除了内核)都是从该共享的或挂载的目录调入CPE内存运行的。其中,“192.168.1.*”是访问的权限控制,表示所有192.168.1.网段的host都可以访问该目录,“*”号是表示0~255的任意数字。最后的“(rw,no_root_squash)”表示该目录的读写权限,这里是声明挂载该目录的机子都可以对该目录进行任意读写,而且权限相当于root。
[0079] 3)在Linux会话中,进入开发目录,如:/opt/bcm963xx。然后运行make menuconfig命令,对项目进行编译配置。需要修改的编译配置为:
[0080] A.载入当前使用的Profile;
[0081] B.选择Root file system selection选项,把SQUASHFS修改为NFS;
[0082] C.选择Driver selection选项,找到Ethernet项,然后把修改为<*>;
[0083] D.保存修改好的Profile;
[0084] 4)把开发目录下面的整个工程都clean一下。
[0085] 5)现在使用刚才修改好的Profile进行整个工程的编译。
[0086] 6)进入本地命令行,然后将bcm963xx/targets/96368GW/vmlinux文件拷贝到TFTP的根文件目录,如:/tftproot目录。当ONU启动后,ONU将从该跟文件目录通过网络加载Linux内核镜像。
[0087] 7)加电启动ONU板子,然后使ONU板子停留在命令行阶段,使用‘c’命令修改Bootloader的启动配置参数。修改完之后使用reset命令重启ONU板子,重启后CPE将会使用TFTP协议从Host机上获取内核镜像调入CPE内存,然后运行该内核镜像。内核启动完成,ONU板子将自动挂载NFS文件系统为其根文件系统,整个系统也就起来了。
[0088] 本发明摆脱了烧录image的过程,使得ONU的调试与测试变得更加容易。与最好的现有技术相比,本发明的优点在于无需把编译的image烧录到ONU板子上,当修改了代码中的某个地方后,只需要编译一下,然后重启ONU就可以实现调试了。
[0089] 综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0090] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。