华为海思HiS7162cv200 Linux开发环境搭建指南

需积分: 9 1 下载量 73 浏览量 更新于2024-07-22 1 收藏 545KB PDF 举报
"华为海思HiS7162cv200开发环境的用户指南,主要内容涉及Linux开发环境的搭建、HiBoot、Linux内核、根文件系统的配置及烧写,还包括网络开发环境的创建和Linux应用的启动。适用于技术支持工程师和软件开发工程师,对应的产品版本包括Hi3716C、Hi3719C、Hi3719M、Hi3718C和Hi3718M的多个版本。" 华为海思的HiS7162cv200是一款针对嵌入式领域的SoC(System on Chip)芯片,用于高清设备的开发。这个开发环境特别关注Linux操作系统,因为Linux是许多嵌入式系统中常用的操作系统,它提供了稳定性和灵活性。 1. **Linux开发环境搭建**:此阶段通常包括在开发主机上安装必要的交叉编译工具链、设置环境变量、配置Makefile等,以便于编译和调试针对目标硬件的Linux程序。开发者需要熟悉GCC交叉编译器、GDB调试器以及如OpenEmbedded、Yocto Project等构建系统。 2. **HiBoot**:HiBoot是华为海思自研的引导加载程序,类似于通用的Bootloader,负责初始化硬件、加载Linux内核到内存并启动。开发者需要理解HiBoot的工作流程,以进行定制化开发或故障排查。 3. **Linux内核配置与编译**:根据目标硬件的特性,开发者需要定制Linux内核,包括选择合适的驱动程序、裁剪不必要的功能,然后编译生成适合HiS7162cv200的内核映像。 4. **根文件系统构建**:根文件系统包含了运行Linux系统所需的用户空间程序和服务。开发者通常会使用 BusyBox 或 Buildroot 来构建轻量级的根文件系统,或者利用更复杂的框架如Yocto来生成包含特定应用的完整文件系统。 5. **内核和根文件系统烧写**:编译完成后,内核和根文件系统会被烧写到目标硬件的存储介质上,这一步通常通过JTAG、UART或网络接口完成。 6. **网络开发环境**:对于网络功能的开发,需要配置网络接口,如以太网或Wi-Fi,确保TCP/IP协议栈正常工作,并能进行网络通信。 7. **启动Linux应用程序**:开发人员需要学会如何在Linux环境中编写、编译和部署应用程序,包括使用GDB进行远程调试。 该文档旨在帮助读者快速理解和上手HiS7162cv200的开发工作,特别是对于技术支持工程师和软件开发工程师来说,这份指南将提供关键的指导和支持。然而,要注意的是,华为海思的文档可能会随着产品更新而定期更新,确保开发者获取最新信息。此外,文档明确指出,所有内容受海思半导体的版权保护,未经许可不得复制或传播。在实际操作中,产品和服务的具体使用应遵循与海思签订的商业合同和条款。
2019-04-25 上传
本资源为arm-linux下的海思编译链工具V300 C语言有三种标准库如下: 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。 目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。 其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。 2.uClibc 一个小型的C语言标准库,主要用于嵌入式。 其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。 对应的,此处的u意思是μ,Micro,微小的意思。 uClibc的特点: (1)uClibc比glibc要小很多。 (2)uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。 3.EGLIBC EGLIBC = Embedded GLIBC EGLIBC是,(后来)glibc的原创作组织FSF所(新)推出的,glibc的一种变体,目的在于将glibc用于嵌入式系统。 EGLIBC的目标是: (1)保持源码和二进制级别的兼容于Glibc 源代码架构和ABI层面兼容 如果真正实现了这个目标,那意味着,你之前用glibc编译的程序,可以直接用eglibc替换,而不需要重新编译。 这样就可以复用之前的很多的程序了。 (2)降低(内存)资源占用/消耗 (3)使更多的模块为可配置的(以实现按需裁剪不需要的模块) (4)提高对于交叉编译(cross-compilation)和交叉测试(cross-testing)的支持 【目前了解到的海思交叉编译工具链的应用环境】 arm-hisiv100-linux为基于uclibc的工具链,arm-hisiv200-linux 为基于 glibc 的工具链; arm-hisiv300-linux为基于uclibc的工具链,arm-hisiv400-linux 为基于 glibc 的工具链; arm-hisiv500-linux为基于uclibc的工具链,arm-hisiv600-linux 为基于 glibc 的工具链。 (在开发的时候,你编译内核所用的交叉编译链跟用户的应用程序所用的交叉编译链一定需要相同,不然没法调用系统内核的依赖库)   其中eglibc这种很容易被人开发者忽视,从而选错了编译工具链。 uClibc和Glibc并不相同,两者有许多不同之处,有可能给你带来一些问题。