1.linuxc++串å£clinux串å£
2.鸿蒙系统体验之在IMX6ULL上体验鸿蒙系统
3.超详细Uboot驱动开发(二)uboot启动流程分析
linuxc++串å£clinux串å£
å¦ä½ç¨Cè¯è¨åä¸ä¸ªè¯»ãå串å£çç¨åºï¼å¤§è´è¿ç¨å°±æ¯
é 置串å£éä¿¡ï¼å æ¬ä¸²å£å·ãæ³¢ç¹çãæ ¡éªä½ãåæ¢ä½è¿äºä¿¡æ¯ï¼
æå¼ä¸²å£ï¼åæå¼æ件ä¸æ ·ï¼å¨Linuxä¸æ¯è¿æ ·ï¼Windowsä¸æ²¡è¯è¿ï¼ä¼°è®¡ä¹å·®ä¸å¤ï¼
åéæ°æ®ï¼å³å串å£ï¼å°±è·åæ件类似ï¼
读å串å£ï¼ç¨readå°±è¡ã
å ·ä½çå½æ°åé ç½®åæ°å¯ä»¥åèä¸äºå«äººç代ç ã
linuxæä¹å¨é©±å¨ä¸ä½¿ç¨ä¸²å£ï¼
Linuxåè¡çèªå¸¦usbtoserial驱å¨ï¼ä»¥æ¨¡åæ¹å¼ç¼è¯é©±å¨ï¼å¨å æ ¸æºä»£ç ç®å½ä¸è¿è¡MakeMenuConfigéæ©Devcesdrivers-->USBseupport-->
linuxæ¥çæ个串å£åæ°ï¼æ³¢ç¹çï¼æ°æ®ä½çï¼å½ä»¤ä»ä¹ï¼
ç¨CATå½ä»¤æ¥ç#cat/proc/tty/driver/serialå¦æéè¦é 置串å£åæ°ï¼minicomæ¯ä¸ªå¾å¥½çéæ©ã
ä¸ãå®è£ sudoapt-getinstallminicom
äºãé ç½®é ç½®minicomçåæ°è¿è¡$sudominicom-s便è¿å ¥äºminicomçé ç½®çé¢ï¼ä½¿ç¨ä¸ä¸é®éæ©Serialportsetupï¼å车ãæ¤æ¶å æ å¨âchangewhichsettingâåé¢åçï¼å®çä¸é¢æå¦ä¸èåï¼åªéè¾å ¥ä¸é¢å¯¹åºçåæ¯ï¼å°±å¯ä»¥è¿å¦ç¸åºçèåè¿è¡è®¾ç½®ã设置å®æï¼å车ï¼å æ ä¼åå°âchangewhichsettingâåé¢ï¼å¦æ¤éå¤ãå®ææå车è¿å主èåå³å¯ã
linuxä¸å¦ä½æ¥ç串å£3ï¼4çirqä¸æå·ï¼
第ä¸ä¸ªæ¯/dev/ttyS0æ¥çå½ä»¤setserial/dev/ttyS2setserial/dev/ttyS3
串å£å·åIPå°åä¸æ ·åï¼
串å£å·åipå°åä¸ä¸æ ·ã
串å£å«å串è¡æ¥å£,串串口ä¹ç§°ä¸²è¡éä¿¡æ¥å£,æçµæ°æ åååè®®æ¥åå æ¬RS--CãRS-ãRSãUSBçãä¸è¬å®¶ç¨ççµèé½å¸¦æ串å£ï¼å¨è®¾å¤ç®¡çå¯ä»¥æ¥çï¼windowsç³»ç»ä¸ä¸²å£ä¸ºCOMåç¼å æ°åï¼ä¾å¦COM1ãLinuxç³»ç»ä¸ä¸²å£å·ä¸è¬ä¸º/dev/ttyS0ã串å£ä¸è¬ç¨äºç¹å¯¹ç¹çæ°æ®ä¼ è¾ã
ipå°ååæ¯ç¨äºæ è¯äºèç½éä¿¡æ¯æ¬æºçå°åãç®åæ¥è®²ï¼ipæ¯ç¨äºå¤ç¹éä¿¡çãipå°åæ¯ä¸ä¸²ç±ç¹åæ ¼å¼è¾åçæ°åï¼æ¯å¦ï¼..1.1ãä¸ä¸ªçµèå¯ä»¥é ç½®å¤ä¸ªipãè串å£å¦æ没æèæåçè¯ï¼ä¸²å£å·ä¸ªæ°åå®é çç©ç串å£ä¸ªæ°ç¸çã
ipå°åä¸è½ç´æ¥ç¨äºæ°æ®ä¼ è¾ï¼éè¦å°è£ å¨ä»¥å¤ªå¤´ï¼å³æ°æ®æ°æ®é¾è·¯å±çæ¯æã串å£åä¸éè¦ï¼å¯ä»¥ç´æ¥åéæ°æ®ã
å æ¤ä»éä¿¡æ¹å¼ï¼ä»¥å使ç¨åºæ¯ä¸ä¸¤ä¸ªé½æ¯ä¸ä¸æ ·çã
鸿蒙系统体验之在IMX6ULL上体验鸿蒙系统
请先下载以下文件,里面含有烧写软件:
鸿蒙内核Liteos-a的口驱官方代码目前只支持海思的芯片,我作为首批开发者入驻华为一个多月,动源动成功在ASK_IMX6ULL上移植了Liteos-a。码分
本文先让大家体验一下Liteos-a,析u线驱后续会发布教程、串串口多空强弱能量柱指标源码视频、口驱源码。动源动
百问网开发了一款烧写软件:ask_imx6ull_flashing_tool,码分它的析u线驱界面如下:
使用这软件,只需要一条USB线连接电脑和开发板USB OTG口,串串口只需要点击一个按钮就可以体验鸿蒙系统。口驱
1.1 熟悉ASK_IMX6ULL启动开关1.1.1 全功能版
ask_imx6ull全功能版支持USB、动源动EMMC、码分棋牌牛牛源码SD/TF卡三种启动方式。析u线驱使用后2种启动方式之前,需要先在EMMC或SD/TF卡上烧写系统。
板子背后画有一个表格,表示这3种方式如何设置。表格如下:
BOOT CFG
这3种启动方式的设置示意图如下:
其中的USB启动模式主要用来烧写系统。 注意:设置为USB启动时,不能先插上SD/TF卡。
1.1.2 MINI EMMC版
百问网 IMX6ULL EMMC版支持USB、EMMC、SD/TF卡三种启动方式。使用后2种启动方式之前,需要先在EMMC或SD/TF卡上烧写系统。问道网关源码 板子背后画有一个表格,表示这3种方式如何设置。表格如下:
这3种启动方式的设置示意图如下:
其中的USB启动模式主要用来烧写系统。 注意:设置为USB启动时,不能先插上SD/TF卡。
1.2 安装驱动程序
下载“ask_imx6ull烧写工具v4.zip” 后,把它解压可得如下目录:
运行上图中的程序。
1.2.2 连接USB OTG线
先把开发板设置为USB启动方式,接好2条USB线,开发板上电。
(1) 全功能版接线方式
(2) MINI EMMC版接线方式
1.2.3 安装IMX6ULL的USB驱动程序
通过USB下载或是烧写程序时,需要把开发板的OTG口用USB线连接到电脑。一般都会自动安装驱动,app借贷源码烧写软件的绿灯不亮时,则很有可能是驱动程序没有安装好,这时需要手工安装驱动程序。
要选择“连接到主机”,勾选“记住我的选择,以后不再询问”。也许你不慎点错了“连接到虚拟机”,那也没关系,在VMWARE的菜单中把“Freescale SE Blank 6ULL”或“Netchip USB download gadget”断开连接,如下图所示:
安装第2个驱动:当烧写工具的“设备已连接”绿灯亮起,就可以在“专业版”点击“运行”按钮,这时电脑会识别出“USB download gadget”设备,一般都会自动给它安装驱动程序,alphago zero 源码如下图:
如果没有自动安装好驱动程序(“固件已运行”绿灯没亮),先去
下载zadig并运行,然后参考下图安装驱动程序:
如果一切正常,烧写工具的2个绿灯都会亮,如下:
这就表示所有驱动都安装好了,可以重启开发板,就可以参考后面章节体验鸿蒙了。
1.3 鸿蒙文件在哪
在“ask_imx6ull烧写工具v4”目录下,
1.4 一键体验鸿蒙:下载到内存运行1.4.1 一键启动
把开发板设置为USB启动,接好2条USB线,装好驱动程序后,运行烧写工具,点击下图所示按钮,观察串口信息,可以看到板子启动进入鸿蒙系统了:
串口信息如下:
1.4.2 执行shell命令
执行help命令,可以看到支持的SHELL命令,如下:
1.4.3 执行数码相框GUI程序
注意:必须用“./bin/digitpic”,不能用绝对路径“/bin/digitpic” 注意:这个GUI程序是我们自己写得,很丑,与鸿蒙无关。
在板子屏幕上可以看到:
1.4.4 退出程序
执行task命令确定进程号,然后执行“kill -9 PID”杀掉进程,比如:
1.5 开机自动启动鸿蒙
把开发板设置为USB启动,接好2条USB线,装好驱动程序后,运行烧写工具.
先烧写,点击下图所示按钮:
然后设置默认系统,如下图所示:
最后,设置为EMMC启动,重新上电后就可以自动进入鸿蒙系统。
超详细Uboot驱动开发(二)uboot启动流程分析
本文将深入解析Uboot(BL2阶段)的启动流程,BL1阶段的详细流程会在后续文章中分享。首先,我们来看Uboot的执行流程,以EMMC作为启动介质为例。 Uboot启动流程大致如下:首先打开u-boot.lds文件,它是Uboot工程的关键链接脚本,指定入口地址ENTRY(_start)。通过查找u-boot.lds文件(通常在源码目录下),可以理解程序的组装过程。 进入程序执行,board_init_f()函数在common/board_f.c中,负责调用init_sequence_f进行初始化,包括串口、定时器、设备树和DM驱动模型等,还包括global_data结构体初始化。其中,reloc_xxx函数实现重定向功能,将Uboot镜像移到高端内存以避免内存冲突。 重定向的必要性和过程包括:当内存不足时,Uboot会将自身镜像移动到DDR的其他位置。具体步骤包括在arch/arm/lib/crt0.S文件内的处理。setup_reloc函数帮助我们跟踪重定向后的地址,便于调试。 后续,board_init_r负责后置初始化,如外设信息的初始化。最后,执行run_main_loop和main_loop函数,main_loop是Uboot的核心,处理kernel加载、命令行交互和预定义命令等任务。 在main_loop中,bootdelay_process负责启动倒计时,cli_loop则负责命令行交互。通过理解这些关键步骤,我们对Uboot的启动流程有了全面认识。深入了解部分则可根据个人兴趣逐步探索。 如果有疑问或需要进一步讨论,欢迎在评论区交流。参考文章链接如下:[0]:优化阅读体验
[1]:board_init_f的详细介绍
[2]:启动流程参考
[3]:main_loop的相关内容