OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9571|回复: 15

阿尔法开发板(I.MX6ULL)修改调试串口

[复制链接]

8

主题

888

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2377
金钱
2377
注册时间
2019-9-25
在线时间
394 小时
发表于 2020-3-17 14:42:20 | 显示全部楼层 |阅读模式
本帖最后由 仰望星空之云 于 2021-7-10 10:25 编辑

阿尔法开发板上开发板启动调试信息是默认从底板的USB_TTL(原理图对应的是UART1)这个口输出的,我们也可以自己进行修改为从其他口输出,此处修改从底板的COM3口输出(原理图对应的是UART3)。

图片1.png


这里,我使用的uboot源码是3、正点原子修改后的Uboot和Linux(出厂源码)
这个源码的板级配置文件是 board/freescale/mx6ullevk/mx6ullevk.c,其他源码的根据自己的配置文件来哈。

8.png
文件系统我用的是正点原子出货时候烧录好的那个文件系统。A盘资料的路径是:
正点原子\开发板光盘A-基础资料\5、开发工具\4、正点原子修改过的MFG_TOOL烧写工具(出厂固件烧录)\mfgtool\Profiles\Linux\OS Firmware\files\filesystem
一、修改uboot
1、修改uboot源码下的include/configs/mx6_common.h文件

图片2.png
2、修改uboot源码下的include/configs/mx6ullevk.h

  1. define CONFIG_MXC_UART_BASE            UART1_BASE
  2. 改为
  3. define CONFIG_MXC_UART_BASE            UART3_BASE
复制代码
图片3.png
  1. 将宏定义CONFIG_EXTRA_ENV_SETTINGS下的ttymxc0改为ttymxc2
复制代码
图片4.png
3、修改board/freescale/mx6ullevk/mx6ullevk.c

  1. static iomux_v3_cfg_t const uart1_pads[] = {
  2.         MX6_PAD_UART1_TX_DATA__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
  3.         MX6_PAD_UART1_RX_DATA__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
  4. };
  5. 改为
  6. static iomux_v3_cfg_t const uart1_pads[] = {
  7.         MX6_PAD_UART3_TX_DATA__UART3_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
  8.         MX6_PAD_UART3_RX_DATA__UART3_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
  9. };
复制代码
图片5.png
4、编译uboot
执行以下指令进行编译uboot(注:配置uboot的指令根据自己的uboot来,此处配置文件用的是mx6ull_14x14_ddr512_emmc_defconfig
  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean                                                                          //清理uboot
  2. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig                           //配置uboot
  3. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-                                                                                        //编译uboot
复制代码
以上对uboot修改成功,如果将编译生成的u-boot.imx文件烧录到SD卡或者开发板的EMMC里,发现开发板启动后会打印Running local boot scripts (/etc/rc.local).以后就没有输出信息了,也看不到开发板进入文件系统的信息,实际上开发板已经启动进入文件系统了,但是在UART3处没有讲进入文件系统的信息打印出来,此时需要修改文件系统的配置文件,才能将文件系统修改默认从UART3输出。
图片6.png
二、修改文件系统配置文件
修改文件系统/etc/inittab文件

mxc0:12345:respawn:/sbin/getty -l /bin/autologin -n -L 115200 ttymxc0
改为
mxc0:12345:respawn:/sbin/getty -l /bin/autologin -n -L 115200 ttymxc2
图片7.png
三、将文件系统和编译好的u-boot.imx替换掉原来的文件系统和u-boot.imx文件,开发板启动后可以成功从UART3输出启动打印信息,并成功进入文件系统中。
如下输入指令ps查看进程,可以看出当前使用的是ttymxc2,即UART3,自此修改调试口成功。
图片8.png

对了,提醒一下,接底板的COM3这个口,需要将跳线帽接到UART3那里,不然COM3口是无法打印输出信息的。跳线帽这样子接:
1.png


正点原子电子公众号开启了,喜欢的伙伴可以关注哦:https://mp.weixin.qq.com/s/IFDd5am26K1rImLXjoBhEw

1.png


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2020-3-17 18:35:23 | 显示全部楼层
本帖最后由 仰望星空之云 于 2020-3-17 19:19 编辑

哇!不错,谢谢分享,有空照着改下
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

14

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2019-7-11
在线时间
42 小时
发表于 2020-3-18 08:56:53 | 显示全部楼层
你这个工程有点大啊,uboot改了后,内核也需要修改的!
回复 支持 反对

使用道具 举报

88

主题

7381

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14979
金钱
14979
注册时间
2013-11-13
在线时间
1823 小时
发表于 2020-3-18 09:25:31 | 显示全部楼层
不错不错,厉害。多谢分享,有需求的朋友可以看一下
回复 支持 反对

使用道具 举报

8

主题

888

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2377
金钱
2377
注册时间
2019-9-25
在线时间
394 小时
 楼主| 发表于 2020-3-18 21:29:05 | 显示全部楼层
本帖最后由 仰望星空之云 于 2020-3-19 09:58 编辑
casy99 发表于 2020-3-18 08:56
你这个工程有点大啊,uboot改了后,内核也需要修改的!

针对上面的I.MX6ULL的源码,不需要修改内核的修改uboot和文件系统的配置文件就行。其它系列芯片的可能还需要改内核
回复 支持 反对

使用道具 举报

14

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2019-7-11
在线时间
42 小时
发表于 2020-3-20 13:55:26 | 显示全部楼层
1208 发表于 2020-3-17 18:35
哇!不错,谢谢分享,有空照着改下

我今天照着做,前三个步骤都改了,但是uart1还是有打印,奇怪
回复 支持 反对

使用道具 举报

14

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2019-7-11
在线时间
42 小时
发表于 2020-3-20 16:11:44 | 显示全部楼层
研究发现:
如果使用make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig
则需要修改:\uboot\uboot-imx-rel_imx_4.1.15_2.1.0_ga_alientek\board\freescale\mx6ull_alientek_emmc\
mx6ull_alientek_emmc.c
回复 支持 反对

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2020-3-20 16:40:36 | 显示全部楼层
casy99 发表于 2020-3-20 13:55
我今天照着做,前三个步骤都改了,但是uart1还是有打印,奇怪

我还没试呢,你跟楼主切磋下比较清楚
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

14

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2019-7-11
在线时间
42 小时
发表于 2020-3-20 16:46:18 | 显示全部楼层
1208 发表于 2020-3-20 16:40
我还没试呢,你跟楼主切磋下比较清楚

现在该成功了,嘿嘿
回复 支持 反对

使用道具 举报

8

主题

888

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2377
金钱
2377
注册时间
2019-9-25
在线时间
394 小时
 楼主| 发表于 2020-3-21 12:32:57 | 显示全部楼层
casy99 发表于 2020-3-20 16:11
研究发现:
如果使用make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig
...

谢谢老哥提醒,这会我加了个提示信息了

8.png
回复 支持 反对

使用道具 举报

9

主题

758

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5230
金钱
5230
注册时间
2019-9-25
在线时间
428 小时
发表于 2020-3-21 16:09:37 | 显示全部楼层
casy99 发表于 2020-3-20 13:55
我今天照着做,前三个步骤都改了,但是uart1还是有打印,奇怪

估计是你的环境变量没搞好,
  1. env default -a , saveenv
复制代码
想思考的时候,有时还可以用屁股,QQ 1252699831
回复 支持 反对

使用道具 举报

0

主题

201

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2449
金钱
2449
注册时间
2019-12-5
在线时间
342 小时
发表于 2021-8-2 16:14:29 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

3

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
金钱
469
注册时间
2021-1-16
在线时间
50 小时
发表于 2021-9-4 16:50:54 | 显示全部楼层
不需要kernel和dts配置stdout吗?
回复 支持 反对

使用道具 举报

8

主题

888

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2377
金钱
2377
注册时间
2019-9-25
在线时间
394 小时
 楼主| 发表于 2021-10-11 19:08:49 | 显示全部楼层
jzhang123 发表于 2021-9-4 16:50
不需要kernel和dts配置stdout吗?

用nxp的源码来做(或者说是基于nxp的源码),不需要了
回复 支持 反对

使用道具 举报

15

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2022-4-12
在线时间
41 小时
发表于 2023-8-16 19:36:57 | 显示全部楼层
楼主楼主,为什么我改后登入系统要密码了,原来ttymxc0不用的,我改成ttymxc7就要密码了
回复 支持 反对

使用道具 举报

15

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2022-4-12
在线时间
41 小时
发表于 2023-8-16 19:37:42 | 显示全部楼层
我是用出厂的uboot和linux
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-10 14:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表