论 坛:http://bbs.100ask.net/(学术答疑)
公 众 号:百问科技
版本 | 日期 | 作者 | 说明 |
V1 | 2020 | 韦东山 | 韦东山鸿蒙开发手册 |
鸿蒙内核Liteos-a的官方代码目前只支持海思的芯片,我作为首批开发者入驻华为一个多月,成功在100ASK_IMX6ULL、100ASK_STM32MP157上移植了Liteos-a。
本文先让大家在STM32MP157上体验一下Liteos-a。
ST公司有一款烧写软件:STM32CubeProgrammer,它的界面如下:
使用这软件,只需要一条USB线连接电脑和开发板USB OTG口,只需要点击几个按钮就可以体验鸿蒙系统。
1.1 100ASK_STM32MP157启动开关
3.1.1 全功能版
板子上的红色拨码开关用来设置启动方式,支持这四种方式:EMMC启动、SD卡启动、USB烧写以及M4(debug)模式。
板子背后画有一个表格,表示这四种方式如何设置。表格中BOOT0对应开关1,BOOT1对应开关2,BOOT2对应开关3,如下:
BOOT CFG:
BOOT | BOOT0 | BOOT1 | BOOT2 |
EMMC | OFF | ON | OFF |
SD | ON | OFF | ON |
USB | OFF | OFF | OFF |
M4(debug) | OFF | OFF | ON |
这四种启动方式的设置示意图如下:
刚出厂的板子在EMMC上烧写了系统,你可以设置为EMMC启动方式。
其中的USB启动模式主要用来烧写系统。
1.2 安装STM32CubeProgrammer烧写工具
ST公司给stm32mp157系列开发板提供了烧写工具:STM32CubeProgrammer。它的使用界面如下所示:
详细参考页面:http://wiki.100ask.org/STM32CubeProgrammer
1.2.1 安装烧写工具
下载GIT资料后,可以看到烧写工具:
解压后会发现此烧写工具支持三种系统运行环境,这里我们默认使用windows版本,其它版本暂不做讲解。解压后双击执行SetupSTM32CubeProgrammer-2.5.0.exe 可执行程序,首次安装如果没有安装java运行环境会有如下图的提示信息,需要安装jdk8来运行此烧写工具。
- 安装JAVA(需要的话)
双击运行“jdk_8.0.1310.11_64.exe”,在下图所示弹出的Java SE安装界面连续点击 “下一步”:
继续参考下图所示点击下一步(不建议修改安装目录),等待进度条显示完成:
安装完成后如下图所示,点击关闭即可(自此,java运行环境已经安装完成)。 - 安装STM32CubeProgrammer
双击执行SetupSTM32CubeProgrammer-2.5.0.exe 可执行程序,如下图所示,连续点击“Next”:
如下图,在新弹出的页面选中“I accept the terms of this lincese agreement.”,继续点击”Next”,进入下个界面提示选择安装路径,保持默认即可,继续点击“Next“。
在下图所示的新窗口提示“这个目录将会被创建”,点击”确定”即可,之后进入到安装软件选择界面,这里保持默认即可,点击”Next”。
如下图所示显示烧写工具的安装进度,等待安装完成,安装完成后:
安装完成后提示是否创建开始菜单和桌面快捷方式以及此软件的使用者,这些参考下图所示,使用默认设置,继续点击”Next”,最后提示 STM32CubeProgrammer Installation done 表示安装完成,点击 “Done”,即可关闭安装界面,之后我们可以在桌面看到多出来一个STM32CubeProgrammer的应用程序 。
1.2.2 连接USB OTG线
接线、设置USB启动的方式如下:
- 全功能版接线方式
1.2.3 安装STM32MP157的USB驱动程序
通过USB下载或是烧写程序时,需要把开发板的OTG口使用USB线连接到电脑,并设置为USB启动方式,然后启动电源,此时打开windows 10设备管理器,在通用串行总线设备 会出来一个名为 “DFU in HS Mode @Device ID /0x500.@Revision ID /0x0000 ”设备,此时打开STM32CubeProgrammer 烧写工具,如下图所示红色箭头指示,先选择“USB1”再点击刷新按钮,会在 Port 那里显示出来一个 USB1 的设备,这里就表示已经连接成功,可以进行下一步的烧写操作。
- USB驱动没有自动安装
通过USB下载或是烧写程序时,需要把开发板的OTG口用USB线连接到电脑。目前暂未遇到无法安装驱动的问题,如果您在烧写的时候没有设备,请联系百问网相关技术人员以请求支持。
1.2.4 烧写用的配置文件
STM32CubeProgrammer烧写是根据后缀名为 tsv的分区配置文件来匹配分区和文件。
我们可以根据自己的需求来更新自己所需的内容,分区配置信息文件内容简介如下图所示,示例tsv文件解析如下(这只是一个例子):
其中烧写状态标识区域支持如下图所示5中方式,用户可以根据自己的需要修改相应的烧写状态标识来选择更新/删除某些分区。
目前仅支持烧写二进制文件,也就是各类映像文件,它们会被原原本本地烧写到EMMC上。
配置文件详细的配置说明请参考页面:http://wiki.100ask.org/STM32CubeProgrammer_flashlayout
1.3 鸿蒙文件在哪
下载到GIT资料后,鸿蒙文件位于如下目录:
编译鸿蒙时后,需要运行编译出来的文件的话,只需要替换这几个文件:
liteos.stm32、liteos_with_uboot_header.bin、rootfs.jffs2.bin
1.4 体验鸿蒙1:完整启动进入系统
注意:我们还没提供把鸿蒙烧到板子EMMC上去的方法,现在只能下载到内存运行。等我们把LCD、触摸屏搞定后,再实现EMMC启动。
1.4.1 启动鸿蒙
首先,把开发板设置为USB启动,用USB线连接电脑和板子的OTG口,用USB先链接电脑和板子的USB串口。
打开串口工具。
然后按图操作,一切正常的话可以在串口工具里进入鸿蒙系统:
串口信息如下:
1.4.2 执行shell命令
执行help命令,可以看到支持的SHELL命令,如下:
1.4.3 执行hello程序
我们还没来得及编写LCD、触摸屏驱动程序,所以/bin/digitpic暂时无法使用。
可以试试运行hello程序。
注意:必须用“./bin/hello”,不能用绝对路径“/bin/hello”
1.4.4 退出程序
执行task命令确定进程号,然后执行“kill -9 PID”杀掉进程,比如:
1.5 体验鸿蒙2:只启动内核
注意:我们还没提供把鸿蒙烧到板子EMMC上去的方法,现在只能下载到内存运行。等我们把LCD、触摸屏搞定后,再实现EMMC启动。
启动完整系统时,还需要在串口上输入“Ctrl+C”,在调试内核过程中只需要启动内核的话,还有更简单的方法。
如下图操作:
串口信息如下: