OpenHarmony开源社区
直播中

陈尘

6年用户 31经验值
擅长:电源/新能源 嵌入式技术
私信 关注

《OpenHarmony嵌入式系统原理与应用——基于RK2206芯片(微课视频版)》学习记录1 环境配置与源码编译

一、环境布置

在进行OpenHarmony开发之前,首先需要搭建相应的开发环境。具体步骤如下:

  1. 安装Linux操作系统:OpenHarmony开发需要使用Linux操作系统,因此需要安装Linux操作系统,如Ubuntu。
  2. 安装交叉编译工具链:由于OpenHarmony运行在嵌入式设备上,需要使用交叉编译工具链来编译代码。交叉编译工具链包括arm-linux-gcc、arm-linux-gcc、arm-linux-gnueabi-gcc等。
  3. 可使用vscode/eclipse/vim等进行代码的阅读与开发
  4. 配置rk2206开发板的IP地址和SSH连接:在使用Eclipse进行远程开发之前,需要配置rk2206开发板的IP地址和SSH连接。

二、源码下载和编译

  1. 获取OpenHarmony源码:OpenHarmony是一款开源的操作系统,可以从官方网站获取最新的源代码。也可以从Gitee网站获取,该网站提供了OpenHarmony的源代码和相应的文档。
  2. 解压源码:将下载的源代码解压到指定的目录中,如/home/user/openharmony。
  3. 配置源码:在进行源码编译之前,需要进行一些配置。具体配置步骤可以参考OpenHarmony官方文档。
  4. 编译源码:使用make命令进行源码编译,编译过程需要消耗一定的时间。
  5. 生成目标文件:编译完成后,生成相应的目标文件,如rk2206.elf。
  6. 烧录目标文件:将生成的目标文件烧录到RK2206芯片中,可以使用OpenHarmony官方提供的烧录工具进行烧录。

三、基本原理和应用

  1. OpenHarmony操作系统架构:OpenHarmony是一款开源的分布式操作系统,具有多任务处理、多线程编程、组件化等特点。其架构包括内核层、驱动层、框架层和应用层等四个层次。
  2. RK2206芯片特点:RK2206是一款低功耗、高集成度、基干单片机的无线局域网处理器。它可以应用干不同的应用领域,如物联网(IoT)、可穿戴设备、家庭自动化、云连接等。RK2206将Cortex-M4F与I/D缓存集成,以运行操作系统和应用程序。Cortex-M0带I/D缓存,可用干运行WLAN MAC堆栈。HiFi3 DSP可用干运行音频和智能语音交互相关算法。集成的480KB系统内存和就地执行(XIP)闪存/pSRAM接口使RK2206能够灵活地适应不同的应用程序开发。
  3. OpenHarmony编程模型:OpenHarmony支持多进程和多线程编程,进程和线程的管理由操作系统内核负责。线程间通信可以使用信号量、消息队列等方式。
  4. RK2206驱动程序开发:RK2206芯片支持多种驱动程序,如LCD屏幕驱动、GPIO驱动、I2C驱动等。驱动程序的开发需要了解Linux内核驱动程序的开发原理和技巧。
  5. OpenHarmony特点:OpenHarmony 整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照 “系统> 子系统 > 功能 / 模块” 逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能 / 模块。OpenHarmony 在传统的单设备系统能力的基础上,创造性地提出了基于同一套系统能力、适配多种终端形态的理念,支持多种终端设备上运行。

四、开发工具的使用

  1. Eclipse插件的使用:Eclipse是常用的嵌入式系统开发工具,通过插件可以支持OpenHarmony开发的。在使用Eclipse进行OpenHarmony开发时,需要安装CDT插件。
  2. VSCODE插件的使用:在使用vscode进行OpenHarmony开发时,需要安装C/C++插件和 C/C++ Compile Run extension插件。
  3. 使用vim开发,可参考《简明 Vim 练级攻略(by陈皓)》。
  4. 使用gcc-arm-none-eabi进行交叉编译:由于OpenHarmony运行在嵌入式设备上,需要使用交叉编译工具链来编译代码。在使用gcc-arm-none-eabi进行交叉编译时,需要注意编译选项的设置。
  5. 使用ssh连接远程设备:在使用Eclipse进行远程开发时,需要使用ssh连接远程设备。在使用ssh连接远程设备时,需要注意密钥的配置。
  6. 使用SHELL脚本和CMAKE以及Makefile,会给代码的编译和执行带来很大的便利。

五、学习建议

  1. 先学习操作系统的基础知识,了解操作系统的基本概念和工作原理。
  2. 熟悉C/C++编程语言,了解嵌入式系统的开发环境。
  3. 按照书中的代码示例进行实践,逐步掌握OpenHarmony操作系统的编程模型和RK2206芯片的驱动程序开发技巧。
  4. 参考OpenHarmony官方文档和RK2206芯片官方文档,了解更多关于OpenHarmony和RK2206芯片的详细信息。

六、环境布置与源码下载、编译脚本

#!/bin/sh
#进行软件包更新
sudo apt-get upgrade 
sudo apt-get update
#安装Python3.8
sudo apt install python3-pip
#安装ssh工具
sudo apt-get install openssh-server
#安装网络查看工具
sudo apt install net-tools
#安装交叉编译gcc工具
sudo apt-get install gcc-arm-none-eabi
#安装vim工具
sudo apt-get install vim
#安装必要的库
 sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler curl tar cmake 
 #安装pip工具
sudo pip3 install setuptools kconfiglib
#设置python和python3软链接为python3
if [ -d /usr/bin/python3.8 ];then
	sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
	sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
else
	echo "请使用python3 -V 确定python版本,并查看对应路径下已安装的版本,将以上python3.8字段进行替换"
fi
#下载源码
mkdir work
chmod 777 work
cd work
git clone https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts rk2206Openharmony3.0
cd rk2206Openharmony3.0 
#安装hb 工具与配置
python3 -m pip install --user build/lite
#预编译
./build/prebuilts_download.sh
#设置环境变量
source build/envsetup.sh
#hb路径 $code_dir在环境脚本中被设置为脚本执行路径
hb set -root $code_dir
#选择编译开发板 
echo "请选择lockzhiner-rk2206"
    hb set
#编译sdk
    hb clean
#编译 首次编译建议加 -f全部编译
    hb build -f              
#最后看到lockzhiner-rk2206 build success就是编译成功了
echo "如果遇到编译失败,在sdk目录下尝试输入以下指令\\\\n
   python3 -m pip install build   "

回帖(2)

陈尘

2023-6-25 11:31:38

RE: 《OpenHarmony嵌入式系统原理与应用——基于RK2206芯片(微课视频版)》学习记录1 环境配置与源码编译

本帖最后由 橙先森256 于 2023-6-25 13:36 编辑

一、环境布置
在进行OpenHarmony开发之前,首先需要搭建相应的开发环境。具体步骤如下:

  • 安装Linux操作系统:OpenHarmony开发需要使用Linux操作系统,因此需要安装Linux操作系统,如Ubuntu。
  • 安装交叉编译工具链:由于OpenHarmony运行在嵌入式设备上,需要使用交叉编译工具链来编译代码。交叉编译工具链包括arm-linux-gcc、arm-linux-gcc、arm-linux-gnueabi-gcc等。
  • 可使用vscode/eclipse/vim等进行代码的阅读与开发
  • 配置rk2206开发板的IP地址和SSH连接:在使用Eclipse等方式进行远程开发之前,需要配置rk2206开发板的IP地址和SSH连接。
二、源码下载和编译

  • 获取OpenHarmony源码:OpenHarmony是一款开源的操作系统,可以从官方网站获取最新的源代码。也可以从Gitee网站获取,该网站提供了OpenHarmony的源代码和相应的文档。
  • 解压源码:将下载的源代码解压到指定的目录中,如/home/user/openharmony。
  • 配置源码:在进行源码编译之前,需要进行一些配置。具体配置步骤可以参考OpenHarmony官方文档。
  • 编译源码:使用make命令进行源码编译,编译过程需要消耗一定的时间。
  • 生成目标文件:编译完成后,生成相应的目标文件,如rk2206.elf。
  • 烧录目标文件:将生成的目标文件烧录到RK2206芯片中,可以使用OpenHarmony官方提供的烧录工具进行烧录。
三、基本原理和应用

  • OpenHarmony操作系统架构:OpenHarmony是一款开源的分布式操作系统,具有多任务处理、多线程编程、组件化等特点。其架构包括内核层、驱动层、框架层和应用层等四个层次。
  • RK2206芯片特点:RK2206具有高性能、低功耗、低成本等特点,适用于嵌入式设备。
  • OpenHarmony编程模型:OpenHarmony支持多进程和多线程编程,进程和线程的管理由操作系统内核负责。线程间通信可以使用信号量、消息队列等方式。
  • RK2206驱动程序开发:RK2206芯片支持多种驱动程序,如LCD屏幕驱动、GPIO驱动、I2C驱动等。驱动程序的开发需要了解Linux内核驱动程序的开发原理和技巧。
  • OpenHarmony应用程序开发:OpenHarmony支持多种应用程序开发方式,如基于组件的应用程序开发和基于Activity的应用程序开发。应用程序的开发需要了解OpenHarmony应用程序开发的原理和技巧。
四、开发工具的使用

  • Eclipse插件的使用:Eclipse是常用的嵌入式系统开发工具,通过插件可以支持OpenHarmony开发的。在使用Eclipse进行OpenHarmony开发时,需要安装CDT插件。
  • vscode插件的使用:在使用vscode进行OpenHarmony开发时,需要安装C/C++插件和 C/C++ Compile Run extension插件。
  • 使用vim开发,可参考《简明 Vim 练级攻略(by陈皓)》。
  • 使用arm-linux-gcc进行交叉编译:由于OpenHarmony运行在嵌入式设备上,需要使用交叉编译工具链来编译代码。在使用arm-linux-gcc进行交叉编译时,需要注意编译选项的设置。
  • 使用ssh连接远程设备:在使用Eclipse进行远程开发时,需要使用ssh连接远程设备。在使用ssh连接远程设备时,需要注意密钥的配置。
五、学习建议

  • 先学习操作系统的基础知识,了解操作系统的基本概念和工作原理。
  • 熟悉C/C++编程语言,了解嵌入式系统的开发环境。
  • 按照书中的代码示例进行实践,逐步掌握OpenHarmony操作系统的编程模型和RK2206芯片的驱动程序开发技巧。
  • 参考OpenHarmony官方文档和RK2206芯片官方文档,了解更多关于OpenHarmony和RK2206芯片的详细信息。
六、环境布置与源码下载、编译脚本
  1. #!/bin/sh
  2. #进行软件包更新
  3. sudo apt-get upgrade
  4. sudo apt-get update
  5. #安装Python3.8
  6. sudo apt install python3-pip
  7. #安装ssh工具
  8. sudo apt-get install openssh-server
  9. #安装网络查看工具
  10. sudo apt install net-tools
  11. #安装交叉编译gcc工具
  12. sudo apt-get install gcc-arm-none-eabi
  13. #安装vim工具
  14. sudo apt-get install vim
  15. #安装必要的库
  16. sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler curl tar cmake
  17. #安装pip工具
  18. sudo pip3 install setuptools kconfiglib
  19. #设置python和python3软链接为python3
  20. if [ -d  /usr/bin/python3.8 ];then
  21.         sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
  22.         sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
  23. else
  24.         echo "请使用python3 -V 确定python版本,并查看对应路径下已安装的版本,将以上python3.8替换"
  25. fi
  26. #下载源码
  27. mkdir work
  28. chmod 777 work
  29. cd work
  30. git clone https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts rk2206Openharmony3.0
  31. cd rk2206Openharmony3.0 &&tar -zxvf openHarmony_3.0LTS.tar.gz
  32. cd openHarmony_3.0LTS
  33. #安装hb 工具与配置
  34. python3 -m pip install --user build/lite
  35. #预编译
  36. ./build/prebuilts_download.sh
  37. #设置环境变量
  38. source build/envsetup.sh
  39. #hb路径
  40. hb set -root $code_dir
  41. #选择编译开发板
  42. echo "请选择lockzhiner-rk2206"
  43.     hb set
  44. #编译sdk
  45.     hb clean
  46. #编译 首次编译建议加 -f全部编译
  47.     hb build -f              
  48. #最后看到lockzhiner-rk2206 build success就是编译成功了
  49. echo "如果遇到编译失败,在sdk目录下尝试输入以下指令\n
  50.    python3 -m pip install build   "





举报

陈尘

2023-6-25 11:47:20
不是ARMv6架构,是Cortex-M4F ,WLAN MAC堆栈使用了Cortex-M0 i/d 缓存,我不知道怎么删除和修改,规格参数可查看:https://www.scensmart.com/genera ... p-rk2206-datasheet/
举报

更多回帖

发帖
×
20
完善资料,
赚取积分