首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

vivi 是怎么移植的?

已解决

vivi 是怎么移植的?

悬赏金额: 2 点威望


最佳答案 birthday
vivi的移植  为了使移植工作更加快捷,选择vivi-20030929版本。它不仅提供对ARM-920T 内核的支持,而且直接提供了对于S3C2410x的板级支持,这使移植工作量相对减少。  vivi中与软件相关的修改  vivi作为Linux系统的 启动代码,在编译配置时需要用到函数库,包括交叉编译器库和头文件,交叉编译开关选项设置,还包括Linux内核代码中的库和头文件,所以,通常需要修改 vivi工程管理文件Makefile。  vivi中与硬件相关的初始化  与具体运行在哪一个处理器平台上相关的文件都存放在vivi/arch/目 录下,本系统使用S3C2410x处理器,对应的目录为s3c2410。  其中head.s文件是vivi启动配置代码,加电复位运行的代码就是从这里 开始的。由于该文件中对处理器的配置均通过调用外部定义常数或宏来实现,所以针对不同的平台,只要是S3C2410x处理器,几乎不用修改,只要修改外部 定义的初始值即可。这部分初始值都在vivi/include/platform/smdk2410.h文件中定义,包括处理器时钟、存储器初始化、通用 I/O口初始化以及vivi初始配置等。  对不同Flash启动的修改  vivi能从Nor Flash或Nand Flash启动,因此启动程序以及Linux内核及根文件系统,甚至还包括图形用户界面等就需要存放在Nor Flash或Nand Flash中。这样,作为启动程序的vivi还需要根据实际情况来修改存放这些代码的分区。本系统采用64MB Nand Flash、2MB Nor Falsh,需要由vivi进行分区才能运行Linux。分区指定的偏移地址就是代码应该存放并执行的地址。  内核启动参数设置  经过修改 后,S3C2410x开发板能从Nand Flash中启动运行Linux,也能从Nor Flash中启动,所以相应地也要修改启动命令,如下所示:  #ifdef CONFIG_S3C2410_N AND_BOOT  char Linux_cmd[] = "noinitrd root=/dev/bon/2 init=/Linuxrc console=tty0 console=ttyS0 ";  #else  char Linux_cmd[] = "noinitrd root=/dev/mtdblock/3 init=/Linuxrc console=tty0 console=ttyS0";  #endif  修改并实现Flash驱动  移植vivi的最后一步是实现Flash驱动,开发者需要根据自己系统 中具体Flash芯片的型号及配置,修改驱动程序,使Flash设备能够在嵌入式系统中正常工作。如果使用的是驱动尚未支持的Flash芯片,只需仿照其 他型号,将Flash型号加入该驱动程序即可。  修改Flash驱动的关键一步是对flash. c文件的修改。flash. c是读、写和删除Flash 设备的源代码文件。 由于不同开发板中Flash 存储器的种类各不相同,所以修改flash. c 时需参考相应的Flash 芯片手册。它包括如下几个函数:  unsigned long flash - init(void ),Flash 初始化;  void flash - print - info(flash - info - t *info),打印Flash信息;  int flash - erase(flash - info - t*info,ints - first,ints -last),Flash 擦除;  volatile static int write-hword(flash - info - t*info,ulongdest,ulong data),Flash 写入;  int write - buff(flash - info - t *info,uchar *src,ulongaddr,ulong cnt),从内存复制数据。  当做好上述的移植工作后,就能对vivi进行编译了。在编译vivi之前,需要根据开发板进行适当的配置。保存并退出后, 执行“make”命令开始编译。把编译好的vivi烧到Nor Flash中,加电重启开发板就能运行vivi了。
vivi的移植  为了使移植工作更加快捷,选择vivi-20030929版本。它不仅提供对ARM-920T 内核的支持,而且直接提供了对于S3C2410x的板级支持,这使移植工作量相对减少。  vivi中与软件相关的修改  vivi作为Linux系统的 启动代码,在编译配置时需要用到函数库,包括交叉编译器库和头文件,交叉编译开关选项设置,还包括Linux内核代码中的库和头文件,所以,通常需要修改 vivi工程管理文件Makefile。  vivi中与硬件相关的初始化  与具体运行在哪一个处理器平台上相关的文件都存放在vivi/arch/目 录下,本系统使用S3C2410x处理器,对应的目录为s3c2410。  其中head.s文件是vivi启动配置代码,加电复位运行的代码就是从这里 开始的。由于该文件中对处理器的配置均通过调用外部定义常数或宏来实现,所以针对不同的平台,只要是S3C2410x处理器,几乎不用修改,只要修改外部 定义的初始值即可。这部分初始值都在vivi/include/platform/smdk2410.h文件中定义,包括处理器时钟、存储器初始化、通用 I/O口初始化以及vivi初始配置等。  对不同Flash启动的修改  vivi能从Nor Flash或Nand Flash启动,因此启动程序以及Linux内核及根文件系统,甚至还包括图形用户界面等就需要存放在Nor Flash或Nand Flash中。这样,作为启动程序的vivi还需要根据实际情况来修改存放这些代码的分区。本系统采用64MB Nand Flash、2MB Nor Falsh,需要由vivi进行分区才能运行Linux。分区指定的偏移地址就是代码应该存放并执行的地址。  内核启动参数设置  经过修改 后,S3C2410x开发板能从Nand Flash中启动运行Linux,也能从Nor Flash中启动,所以相应地也要修改启动命令,如下所示:  #ifdef CONFIG_S3C2410_N AND_BOOT  char Linux_cmd[] = "noinitrd root=/dev/bon/2 init=/Linuxrc console=tty0 console=ttyS0 ";  #else  char Linux_cmd[] = "noinitrd root=/dev/mtdblock/3 init=/Linuxrc console=tty0 console=ttyS0";  #endif  修改并实现Flash驱动  移植vivi的最后一步是实现Flash驱动,开发者需要根据自己系统 中具体Flash芯片的型号及配置,修改驱动程序,使Flash设备能够在嵌入式系统中正常工作。如果使用的是驱动尚未支持的Flash芯片,只需仿照其 他型号,将Flash型号加入该驱动程序即可。  修改Flash驱动的关键一步是对flash. c文件的修改。flash. c是读、写和删除Flash 设备的源代码文件。 由于不同开发板中Flash 存储器的种类各不相同,所以修改flash. c 时需参考相应的Flash 芯片手册。它包括如下几个函数:  unsigned long flash - init(void ),Flash 初始化;  void flash - print - info(flash - info - t *info),打印Flash信息;  int flash - erase(flash - info - t*info,ints - first,ints -last),Flash 擦除;  volatile static int write-hword(flash - info - t*info,ulongdest,ulong data),Flash 写入;  int write - buff(flash - info - t *info,uchar *src,ulongaddr,ulong cnt),从内存复制数据。  当做好上述的移植工作后,就能对vivi进行编译了。在编译vivi之前,需要根据开发板进行适当的配置。保存并退出后, 执行“make”命令开始编译。把编译好的vivi烧到Nor Flash中,加电重启开发板就能运行vivi了。

深圳潮光光耦網——光耦(隔離器)應用服務商
原裝、正品、現貨
潮光光耦网-全球光耦资源整合者
返回列表