海思平台入门1(基于海思Hi3559V200)

超、凢脫俗 2023-02-23 05:16 48阅读 0赞

海思的影像类芯片Hi3559V200,可以开发行车记录仪,运动相机,监控摄像头。

原版SDK源码如下,现在已经开发到5.0版本,这是1.5版本。
在这里插入图片描述
在这里插入图片描述

  1. 主要目录功能介绍如下:
  2. build 目录提供 SDK 的全局编译配置,包括各组件的相对路径和基本配置。
  3. configs 目录提供了通过 menuconfig 配置后生成的配置文件。
  4. Kconfig SDK menuconfig 的入口配置文件。
  5. Makefile SDK 的编译文件,用于编译安装 SDK 工程。
  6. osdrv 目录主要提供底层系统原始包,包括 BootloaderOSRootfs,关键
  7. Driver,工具等。
  8. amp 目录提供媒体模块驱动和库 mpp、操作系统适配组件 osal、芯片及板级驱动
  9. drv、双系统核间通信组件 hisyslink
  10. middleware 目录提供了视频录制,文件管理,回放、GUI,流传输等典型产品业务
  11. 组件及组件 sample;同时还提供了对基础音视频功能和数据流封装模块(ndk)。
  12. reference 目录在 osdrvamp middleware 基础上,提供产品层通用组件、典型产
  13. 品形态参考设计,详细内容可以参见《HiMobileCam V1.0 参考设计开发指南》。
  14. pqtool 目录用于存放图像调优工具,供用户在 PC 端进行图像效果调优,该工具的
  15. 实现依赖于 osdrv mpp

为了避免纠纷,很多第三方工具源码海思无法直接提供,需要自己去网上下载源码,放到文件中,可以在Linux中直接编译,makefile中已经按照名字增加好了。

  1. 3.3 从第三方网站上获取内核源码
  2. linux 开源社区下载 v4.9.37 版本的内核
  3. (https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/),
  4. 选择 linux-4.9.37.tar.gz 这个文件
  5. 下载,并把该文件放入 osdrv/opensource/kernel/目录下。
  6. 3.4 从第三方网络上获取工具类源码
  7. osdrv 编译依赖的工具类开源软件 e2fsprogsgdbmtd-utilsgzipzlib
  8. 需要从对应网络获取。
  9. e2fsprogs 软件包准备
  10. 下载路径:
  11. https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/v1.42.13/
  12. e2fsprogs-1.42.13.tar.gz/download
  13. 放置路径:osdrv/tools/board/e2fsprogs
  14. eudev 软件包准备
  15. 下载路径:https://dev.gentoo.org/~blueness/eudev/eudev-3.2.7.tar.gz
  16. 放置路径:osdrv/tools/board/eudev-3.2.7
  17. gdb 软件包准备 深圳弘源泰信息技术有限公司Hi3559V200_MobileCam_V1.0.1.5
  18. 下载路径:http://ftp.gnu.org/gnu/gdb/gdb-7.9.1.tar.gz
  19. 放置路径:osdrv/tools/board/gdb
  20. ncurses 软件包准备
  21. 下载路径:http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
  22. 放置路径:osdrv/tools/board/gdb
  23. mtd-utils 软件包准备
  24. 下载路径:https://src.fedoraproject.org/repo/pkgs/mtd-utils/mtd-utils-
  25. 2.0.2.tar.bz2/sha512/5e8e8159a0aef719193e4248b3ed22aa37bacc26e8fa0cceb7501b
  26. 0bf05881f5fa1c87599a6fd78a677fe168df3fbae14fa6f3ccaae7c25dbe3c892db243d9a
  27. 4/mtd-utils-2.0.2.tar.bz2
  28. 放置路径:osdrv/tools/board/mtd-utilsosdrv/tools/pc/jffs2_tool
  29. libuuid 软件包准备
  30. 下载路径:https://sourceforge.net/projects/libuuid/files/libuuid-
  31. 1.0.3.tar.gz/download
  32. 放置路径:osdrv/tools/board/mtd-utils
  33. zlib 软件包准备
  34. 下载路径:https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-
  35. 1.2.11.tar.gz/download
  36. 放置路径:osdrv/tools/board/mtd-utilsosdrv/tools/pc/squashfs4.3
  37. osdrv/tools/pc/zlib
  38. util-linux 软件包准备
  39. 下载路径:https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.31/util-linux-
  40. 2.31.tar.gz
  41. 放置路径:osdrv/tools/pc/cramfs_tool
  42. gzip 软件包准备
  43. 下载路径:http://ftp.gnu.org/gnu/gzip/gzip-1.8.tar.gz
  44. 放置路径:osdrv/tools/pc/hi_gzip
  45. lzo 软件包准备
  46. 下载路径:http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz
  47. 放置路径:osdrv/tools/pc/jffs2_tool
  48. lzma 软件包准备
  49. 下载路径:https://src.fedoraproject.org/repo/pkgs/lzma/lzma-
  50. 4.32.7.tar.gz/2a748b77a2f8c3cbc322dbd0b4c9d06a/lzma-4.32.7.tar.gz
  51. 放置路径:osdrv/tools/pc/lzma_tool
  52. yaffs2utils 软件包准备
  53. 下载路径:https://github.com/dorigom/yaffs2utils/archive/0.2.9.tar.gz
  54. 放置路径:osdrv/tools/pc/mkyaffs2image
  55. squashfs 软件包准备
  56. 下载路径:
  57. https://sourceforge.net/projects/squashfs/files/squashfs/squashfs4.3/squashfs4.3.tar.gz
  58. /download
  59. 放置路径:osdrv/tools/pc/squashfs4.3
  60. xz 软件包准备
  61. 下载路径:https://tukaani.org/xz/xz-5.2.2.tar.bz2
  62. 放置路径:osdrv/tools/pc/squashfs4.3
  63. 3.5 从第三方网站上获取第三方源码
  64. 中间件编译依赖的开源软件 ffmpegtiffrapidjsonxmp-toolkit-sdkexpat 需要从对应网站获取。
  65. 参考设计编译依赖的开源软件 freetypethttpd 需要从对应网站获取。
  66. 当服务器能够访问网络且能够通过 curl 命令下载软件包时,编译过程中会自动下载依
  67. 赖软件包,无需用户手动下载放置软件包。如果服务器不支持自动下载软件包或者下
  68. 载失败,需要用户手动下载软件包并放入对应路径,各开源软件下载地址及放入路径
  69. 如下:
  70. ffmpeg 软件包准备
  71. 下载路径:http://ffmpeg.org/releases/ffmpeg-4.1.4.tar.gz
  72. 放置路径:middleware/thirdparty/ffmpeg tiff 软件包准备
  73. 下载路径:http://download.osgeo.org/libtiff/tiff-4.0.10.tar.gz
  74. 放置路径:middleware/thirdparty/tiff
  75. rapidjson 软件包准备
  76. 下载路径:https://codeload.github.com/Tencent/rapidjson/tar.gz/v1.1.0
  77. 放置路径:middleware/thirdparty/rapidjson
  78. xmp-toolkit-sdk 软件包准备
  79. 下载路径:http://download.macromedia.com/pub/developer/xmp/sdk/XMP-ToolkitSDK-CC201607.zip
  80. 放置路径:middleware/thirdparty/xmp-toolkit-sdk
  81. expat 软件包准备
  82. 下载路径:https://codeload.github.com/libexpat/libexpat/tar.gz/R_2_2_6
  83. 放置路径:middleware/thirdparty/xmp-toolkit-sdk
  84. freetype 软件包准备
  85. 下载路径:https://bigsearcher.com/mirrors/nongnu/freetype/freetype-2.9.1.tar.gz
  86. 放置路径:reference/thirdparty/freetype
  87. thttpd 软件包准备
  88. 下载路径:http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz
  89. 放置路径:reference/thirdparty/thttpd
  90. iniparser 软件包准备
  91. 下载路径:https://github.com/ndevilla/iniparser/archive/v4.1.tar.gz
  92. 放置路径:reference/thirdparty/iniparser
  93. hostapd 软件包准备
  94. 下载路径:https://w1.fi/releases/hostapd-2.7.tar.gz
  95. 放置路径:reference/thirdparty/hostapd
  96. libnl 软件包准备
  97. 下载路径:https://www.infradead.org/~tgr/libnl/files/libnl-3.0.tar.gz
  98. 放置路径:reference/thirdparty/libnl

一般开发用Source Insight软件,感觉其他软件无法替代。
在这里插入图片描述

初级开发,一般只是UI的开发,很多功能是海思开发好的,可以在海思的开发板直接运行。

支持NOR、NAND启动。

UI开发,就是在reference层写代码,如果需要更换WiFi模块驱动什么的。都在amp层和osdrv层。

海思提供读写寄存器和IO口的函数 himm 和 himd 一个写一个读。
在这里插入图片描述

  1. actioncam //actioncam code
  2. ├── build //compile configure
  3. ├── Makefile
  4. ├── modules
  5. ├── init //initialization procedure
  6. ├── Makefile
  7. ├── media
  8. ├── netctrl
  9. ├── param //param module, including core/ini2bin/bin2image/inicfg
  10. ├── scene
  11. ├── statemng
  12. ├── ui
  13. └── usbctrl
  14. └── rootfs // rootfs, including Makefile, burn config, private files
  15. ├── build //reference compile configure, script, path definination
  16. ├── common //common component code
  17. ├── devmng
  18. ├── filemng
  19. ├── filetrans
  20. ├── hiconfaccess
  21. ├── hiosd
  22. ├── hisnet
  23. ├── include
  24. ├── inc.mak
  25. ├── Kconfig
  26. ├── liveserver
  27. ├── Makefile
  28. ├── photomng
  29. ├── playback
  30. ├── pm
  31. ├── rawcap
  32. ├── system
  33. ├── usb
  34. └── utils
  35. ├── hicycle
  36. ├── hiflash
  37. ├── hilog
  38. ├── include
  39. ├── Makefile
  40. ├── misc
  41. ├── msg
  42. ├── timedtask
  43. └── timestamp
  44. ├── dashcam
  45. ├── build
  46. ├── Makefile
  47. ├── modules
  48. ├── init
  49. ├── Makefile
  50. ├── media
  51. ├── netctrl
  52. ├── param
  53. ├── scene
  54. ├── statemng
  55. ├── ui
  56. └── usbctrl
  57. └── rootfs
  58. ├── hal
  59. ├── common
  60. ├── gauge
  61. ├── gsensor
  62. ├── inc.mak
  63. ├── Kconfig
  64. ├── key
  65. ├── Makefile
  66. ├── screen
  67. ├── touchpad
  68. └── wifi
  69. ├── Makefile
  70. ├── panocam
  71. ├── build
  72. ├── Makefile
  73. ├── modules
  74. ├── inc.mak
  75. ├── init
  76. ├── Makefile
  77. ├── media
  78. ├── netctrl
  79. ├── param
  80. ├── powerctrl
  81. ├── scene
  82. ├── statemng
  83. └── ui
  84. └── rootfs
  85. ├── thirdparty
  86. ├── hostapd
  87. ├── iniparser
  88. ├── libnl
  89. └── thttpd
  90. └── tools

海思芯片是双系统:Linux和Liteos,一部分功能是在linux端实现,一部分功能是在Liteos实现。

系统框架为 linux+Huawei LiteOS 双系统架构,媒体业务部署在 Huawei LiteOS 端,为了上电快速预览,需要屏幕需部署在 Huawei LiteOS。用户交互业务在 linux 端,屏幕亮度、熄屏/亮屏等屏幕动态属性需要在 linux 端提供接口。

屏幕 HAL 层含 linux 和 Huawei LiteOS 业务接口。

linux 通过 ipcmsg 将命令传送给 Huawei liteOS,所有业务功能实现都在 Huawei
LiteOS 端。

发表评论

表情:
评论列表 (有 0 条评论,48人围观)

还没有评论,来说两句吧...

相关阅读