全志a33 ubootr16怎么改uboot调试串口

openwrt关闭调试串口 - tingpan - 博客园
生命不息,折腾不止!
posts - 111, comments - 10, trackbacks - 0, articles - 2
由于只有一个UART lite接口,在原生的OpenWrt中作为了内核打印和tty控制台所用。而在很多情况下,需要使用串口与外部芯片就行通讯,这时就需要从OpenWrt中释放串口。其实这个任务只有两个步骤:(我们假定为OpenWrt的编译目录)
关闭串口控制台
将$(TOPDIR)/target/linux/ramips/base-files/etc/inittab文件里的下面一句注释掉
::askconsole:/bin/ash --login
$ vi $(TOPDIR)/target/linux/ramips/base-files/etc/inittab
::sysinit:/etc/init.d/rcS S boot
::shutdown:/etc/init.d/rcS K shutdown
#::askconsole:/bin/ash --login
关闭内核打印
在$(TOPDIR)/package/base-files/files/etc/config/system文件添加以下两句
option 'conloglevel' '1'
option 'kconloglevel' '1'
$ vi $(TOPDIR)/package/base-files/files/etc/config/system
config system
option 'conloglevel' '1'
option 'kconloglevel' '1'
option hostname OpenWrt
option timezone UTC
config timeserver ntp
list server
0.openwrt.pool.ntp.org
list server
1.openwrt.pool.ntp.org
list server
2.openwrt.pool.ntp.org
list server
3.openwrt.pool.ntp.org
option enable_server 0
通过以上两个步骤,就可以关闭OpenWrt中所有的系统串口互动,除系统刚刚启动前十余秒的uboot打印信息和Kernel早期打印信息(关于这个部分的残余打印信息,建议在下位机开发的时候做出冗余)。
以上的方法是在OpenWrt的源码里修改,编译新的固件,将新的固件烧进WRTnode便可释放串口。
由于OpenWrt文件系统的可写性,也可以直接修改WRTnode现有固件里的/etc/inittab和/etc/config/system文件,重启后即可释放串口。U-Boot没有串口打印信息 调试u boot_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
U-Boot没有串口打印信息 调试u boot
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可以将程序运行的情况直接通过串口线输出到屏幕上,对于这种异常重要的功能,uboot原生就提供了支持,但为此我们需要做一些准备工作, 流程还是那套:
找运行逻辑,即插入代码的位置。
根据运行逻辑编写功能代码。
找配置逻辑,即修改哪些文件使配置生效。
根据配置逻辑修改配置使功能代码生效。
重新编译烧写uboot。
1. 找运行逻辑
通过的分析, 我们了解到初始化串口的工作在BL2的"board/samsung/myboard/lowlevel_init.S"中进行, 所以我们的工作就是在这个文件中添加相应的代码.
2. 编写功能代码
为了让串口工作, 我们需要添加如下代码
添加临时栈
41 lowlevel_init:
ldr sp,=0x
@use iRom stack in bl2
关闭看门狗
wakeup_reset
69 #if 1 /*for close watchdog */
/* PS-Hold high */
ldr r0, =0x1002330c
ldr r1, [r0]
orr r1, r1, #0x300
str r1, [r0]
r0, =0x11000c08
ldr r1, =0x0
str r1, [r0]
/* Clear MASK_WDT_RESET_REQUEST */
ldr r0, =0x1002040c
ldr r1, =0x00
str r1, [r0]
串口初始化
r1, [r0, #EXYNOS4_GPIO_A1_CON_OFFSET]
ldr r0, =0x
ldr r1, =0x666666
ldr r2, =CLK_SRC_PERIL0_OFFSET
str r1, [r0, r2]
ldr r1, =0x777777
ldr r2, =CLK_DIV_PERIL0_OFFSET
str r1, [r0, r2]
361 #endif
ldr r0, =EXYNOS4_UART_BASE
注释掉 trustzone 初始化
/* for UART */
bl uart_asm_init
@bl tzpc_init
3. 找配置逻辑
这些汇编代码也不需要特别的配置, 重新编译即可生效
4. 修改配置
5. 重新编译烧写
进行了这些工作,我们就可以接上串口线看一下是否有串口输出, 下面是我把网卡一起移植之后的结果, 当然, 这个界面是串口的功劳.
阅读(...) 评论()新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 154, 距离下一级还需 46 积分
论坛徽章:0
s3c6410的板子,u-boot默认的串口0为控制口,现在想把它改成串口1.
将u-boot中的configs/smdk6410.h中的#define CONFIG_SERIAL1& && && & 1
修改为 #define CONFIG_SERIAL2& && && & 1
重新编译烧写后 串口1能够正常输入uboot控制命令 也能下载内核,但是使用bootm启动时就停在了Starting kernel ...(注内核的控制口也修改成串口1了)
另外使用串口0作为控制口时,内核使用串口1作为控制口是可以正常使用的。
不知道还需要修改哪里 请高手指点,谢谢!
丰衣足食, 积分 799, 距离下一级还需 201 积分
论坛徽章:0
内核的控制口不需要你修改吧,只要你在命令行里修改console=ttyS1 就可以了
白手起家, 积分 154, 距离下一级还需 46 积分
论坛徽章:0
内核的控制口是在make menuconfig中的 启动 选项中将console=ttySAC1, init=/init修改的
以前的是console=ttySAC0
奇怪的就是u-boot使用串口0作为控制口的时候 内核不管是串口0还是串口1都能正常启动和敲入命令。
当u-boot换成串口1的时候 提示符停在了:Starting kernel 。。。
正常下一步应该是解压内核的,不知道还需修改那里 请高手指点一下!
白手起家, 积分 154, 距离下一级还需 46 积分
论坛徽章:0
问题已解决,2楼的说的对 可以通过u-boot传参数至内核 覆盖掉 make menuconfig的配置。
可用积分 +18
鼓励解决问题后提供解决办法的
白手起家, 积分 154, 距离下一级还需 46 积分
论坛徽章:0
将u-boot中的configs/smdk6410.h中的#define CONFIG_SERIAL1& && && & 1
修改为 #define CONFIG_SERIAL2& && && & 1
还需修改:
在内核make menuconfig后
& &&&System Type
& & (0) S3C UART to use for low-level messages
中的0改为1
然后就可以转为串口1了。
白手起家, 积分 2, 距离下一级还需 198 积分
论坛徽章:0
您好 小弟遇到了同样的问题
我修改的内容为:
& && && && & 1:将u-boot中的configs/smdk6410.h中的#define CONFIG_SERIAL1& && && & 1& &&&修改为 #define CONFIG_SERIAL3& && && &1&&(我想改为串口2输出)
& && && && & 2:在内核make menuconfig后& &&&System Type& && & (0) S3C UART to use for low-level messages 中的0改为2
请问还需要修改别的吗
我现在的现象是启动时老出现复位&&麻烦指点一下
白手起家, 积分 2, 距离下一级还需 198 积分
论坛徽章:0
楼主 你的问题解决了吗
白手起家, 积分 42, 距离下一级还需 158 积分
论坛徽章:0
楼主问题解决了吗?那是不是修改3个地方,
1.uboot的configs目录;
2.修改uboot传递给内核的参数 console;
3.修改S3C UART to use for low-level messages;
请问楼主是不是修改这3个地方
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 全志a13uboot启动流程 的文章

 

随机推荐