历史上的今天
返回首页

历史上的今天

今天是:2025年11月17日(星期一)

正在发生

2022年11月17日 | 将JZ2440调试串口改为COM2

2022-11-17 来源:zhihu

众所周知,JZ2440 V2很小巧。今天单就JZ2440串口讨论一些问题。我们在用串口进行调试时,需要用JZ2440自带的一根USB线连接电脑USB口和开发板的USB-com1口。先来看一下JZ2440串口大致连接图:



从S3C2440上引出TXD0和RXD0到串口芯片PL2303,大家都知道PL2303是干嘛用的。单片机一般都用PL2303,它的作用是USB转TTL电平,电平经过PL2303转换后,电脑和开发板即可通信,设置好参数就能显示开发板的打印信息了。

JZ2440在这一点上还有一处可以说说,它没有使用其他开发板常用的RS232 DB9接口,很大程度上减小了开发板体积,同时也节约了USB转串口线,降低成本, 可谓一举两得。其他开发板一般使用哪种接口?如下图所示:




其串口工作原理也是一样的,只是接口不同而已,这里也有一个图示:



搞懂了串口工作时的连线图之后就可以在此基础上进行修改,以便解决实际使用中遇到的问题。问题马上来了,在用JZ2440开发时,串口在SecureCRT上输出信息。输出信息时,偶尔会使电脑蓝屏。这种情况多发生在有大量数据要显示的时候,比如开机后,执行命令ls -l /dev。于是我将系统换为XP,用了一段时间,电脑不再蓝屏,所以推测是驱动原因。由于使用习惯,随后我又将XP升级到了Win7 ,Win8 ,Win8.1 , 在使用JZ2440时,电脑又频繁出现蓝屏问题。


驱动日期是2010/10/7 ,这个时间点之后的PL2303装上之后无法使用。苦恼了很久,经常蓝屏严重影响开发效率,甚是不爽。细细想来,这个问题并不是由于JZ2440板子问题,只是因为系统原因, 对PL2303支持不是很到位。因此,准备弃用板子自带的调试串口。毕竟其还扩展有三个TTL串口。理论上可行,仔细的看了一下JZ2440原理图,发现了下面的连线图:



三个TTL串口可供选择,但是com1接口与USB-COM1同一处,避免不必要的麻烦,打算使用com2充当调试串口。如果直接在电脑与开发板之间接一条线肯定不行,两者电平不一样,无法通信。仿照原有电路,我找到了下面的几个设备:





有了这两个设备不就成了?另外一路调试串口呼之欲出。但是这也只是硬件上的连线而已,下面是软件部分的修改(需要重新编译uboot和内核):

1.首先修改的是uboot: uboot/include/configs/100ask24xx.h
,根据具体的板子找对应的文件即可。 ①


#define CONFIG_SERIAL1 1

改为

#define CONFIG_SERIAL2 1


修改这一处目的是告诉bootloader, 系统启动时要把bootloader的调试信息输出到串口 com2 上。那到底哪些才是bootloader的调试信息呢?在下面:

U-Boot 1.1.6 (Sep 19 2014 - 22:44:53)

DRAM: 64 MB

Flash: 2 MB

NAND: 256 MiB

In: serial

Out: serial

Err: serial

UPLLVal [M:38h,P:2h,S:2h]

MPLLVal [M:5ch,P:1h,S:1h]

CLKDIVN:5h

+---------------------------------------------+

| S3C2440A USB Downloader ver R0.03 2004 Jan |

+---------------------------------------------+

USB: IN_ENDPOINT:1 OUT_ENDPOINT:3

FORMAT: +++

NOTE: Power off/on or press the reset
button for 1 sec

in order to get a valid USB device
address.

Hit any key to stop autoboot: 0

Booting Linux ...

NAND read: device 0 offset 0x60000, size 0x400000

Reading data from 0x45f800 -- 100% complete.

4194304 bytes read: OK

## Booting image at 30007fc0 ...

Image Name: Linux-3.4.2

Created: 2014-09-19 15:10:15 UTC

Image Type: ARM Linux Kernel
Image (uncompressed)

Data Size: 2439664 Bytes = 2.3 MB

Load Address: 30008000

Entry Point: 30008000

Verifying Checksum ... OK

XIP Kernel Image ... OK


Starting kernel ... 28


到这里uboot的调试信息打印结束,下面就把所有任务交内核了。有的同学编译好内核启动时,卡死在这里,只能说明,uboot正常,内核是否正常不得而知。要想判断内核是否正常,可以查看一下内核打印出来的调试信息。


#define CONFIG_BOOTARGS "noinitrd root=/dev/mtdblock3
init=/linuxrc console=ttySAC0"

改为

#define CONFIG_BOOTARGS "noinitrd root=/dev/mtdblock3
init=/linuxrc console=ttySAC1"


大家都知道这个参数是传递给内核的,所以修改本处是告诉内核要把内核的调试信息输出到串口 com2 上。

2.修改内核:文件Linux/.config , 没错,这个就是执行 make menuconfig
之后生成的配置文件,我们直接修改它即可。



①为了简单,我直接修改文件,不再演示图形界面了。

CONFIG_S3C_LOWLEVEL_UART_PORT=0

改为

CONFIG_S3C_LOWLEVEL_UART_PORT=1

修改此处是让内核输出低级调试信息。说明一下,低级调试信息就是这一句:

Uncompressing linux…………………………………………………….
done, booting the kernel.

②CONFIG_DEBUG_S3C_UART=0

改为

CONFIG_DEBUG_S3C_UART=1

这是告诉Linux系统,要把调试信息输出到串口2上面。有了这一句,你就会看到很多的调试信息,系统启动时,大部分的输出信息都来自这一配置。

以上4点修改完成后,重新编译uboot和内核,重新烧写、启动。串口修改成功。如果上面4点没有全部修改,可能出现下面的情况:

uboot的信息在com1上面显示,内核的信息则在com2上显示,这是我曾遇到过的。


推荐阅读

史海拾趣

歌尔(Goertek)公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的关键设备,其专业性与科普性兼具。从广义上讲,机顶盒泛指一切与电视机连接的网络终端设备,能够接收并转换多种信号源,包括有线电缆、卫星天线、宽带网络及地面广播等,为观众提供丰富多样的视听体验。

在数字电视时代,机顶盒的核心功能在于实现数模转换,即将接收到的数字信号转换为电视机可识别的模拟信号,从而使用户能在模拟电视机上观看高清甚至超高清的数字电视节目。此外,机顶盒还具备强大的增值服务功能,如提供电子节目指南、因特网网页浏览、在线购物、视频点播等,使电视机从单向接收信息的设备转变为互动的智能终端。

随着技术的不断进步,机顶盒正朝着高清化、智能化方向发展。高清、超高清技术的广泛应用,使得机顶盒能够呈现更为细腻的画面和震撼的音效。同时,智能化技术的融入,如语音助手、智能推荐等功能的实现,进一步提升了用户的使用体验。未来,随着5G、虚拟现实和增强现实等技术的不断发展,机顶盒的应用场景将更加广泛,为用户带来更为沉浸式和互动式的观影体验。

综上所述,机顶盒作为连接电视与外部世界的桥梁,不仅丰富了人们的视听生活,更推动了电视产业的数字化转型与发展。

Crocus Technology公司的发展小趣事

随着技术的不断成熟和市场需求的变化,Crocus Technology开始拓展其产品线。2015年,公司成功推出了首款磁开关产品,这标志着公司在磁传感器领域迈出了重要的一步。随后,公司又陆续推出了位置传感和2D传感器产品,进一步巩固了其在磁传感器市场的地位。

Eink公司的发展小趣事
随着电子纸技术的不断发展,其应用领域也逐渐拓宽。在2002年3月的东京国际书展上,第一张彩色电子纸的出现引起了轰动。此后,电子纸开始被广泛应用于电子书阅读器、电子标签、公交站牌等领域。E-Ink公司作为电子纸技术的领军企业,推动了整个电子纸行业的发展。
CDI-DIODE公司的发展小趣事

随着市场竞争的加剧,CDI-DIODE公司意识到传统的营销方式已经无法满足市场需求。于是,公司开始尝试新的营销策略,如线上推广、社交媒体营销等。这些创新的营销方式不仅提升了公司的知名度,也增强了与客户的互动和联系,进一步提升了品牌影响力。

Easy Braid公司的发展小趣事

作为一家有社会责任感的企业,Easy Braid始终关注环保和公益事业。公司采用环保材料和生产工艺,减少了对环境的污染。此外,Easy Braid还积极参与各种公益活动,为社会做出了积极贡献。这种关注社会责任的企业文化不仅增强了员工的凝聚力和归属感还提升了公司的社会形象和品牌价值。

C-MEDIA公司的发展小趣事

近年来,网络游戏市场呈现出蓬勃发展的态势,C-MEDIA公司也看到了其中的商机。于是,公司通过收购C&C Media,进一步深入日本网络游戏市场。这次收购不仅帮助C-MEDIA公司把握了该市场的成长机遇,也有效地拓展了其海外运营实力。C&C Media旗下的网络游戏门户网站“MK-STYLE”为个人用户提供了丰富的网络游戏服务,进一步巩固了C-MEDIA在网络游戏领域的市场地位。

问答坊 | AI 解惑

大赛的一些资料

本帖最后由 paulhyde 于 2014-9-15 08:59 编辑 大赛的一些资料,应该还可以  …

查看全部问答>

MOSFET导通关断问题

所用元件:P沟道MOSFET IRF9530,一个二极管1N4001,一个5W20欧的电阻,一个220V变15V的变压器。 控制信号:采用+12V,-12V进行控制。 现在是这样连接的:220经过变压器的初级,变压器的次级接上个1N4001二极管(只让正电压通过),二极管后接上 ...…

查看全部问答>

FSK信息解码的电话网数据通信

电话主叫识别信息传送及接收(俗称来电显示), 简称CID(Calling Identify Delivery),是电信局向被叫 电话用户提供的一种服务项目, 是指在被叫用户终 端设备上显示主叫电话号码、主叫用户姓名、呼叫 日期和时间等主叫识别信息并进行存储, 以供 ...…

查看全部问答>

关于U盘安全区读写扇区数的问题

首先读取F盘500的文件,将数据写入安全区,接着再把安全区的数据写到新的文件中, 一次读写128个扇区以上,新生成的文件是损坏的。读写低于128个扇区的,读写扇区数越低,读写速度越慢。当读写扇区数为128时,速度最快,新生成文件可以正常使用。 ...…

查看全部问答>

vxWorks下USB设备插入后,软件的中断响应点在什么位置?

设备插入后应该是产生一个中断,没找到这个中断点在什么地方? 着急啊!…

查看全部问答>

如何在WinCE下安装程序啊?

我现在有一个wince输入法安装文件,安装成功后却找不到执行程序,这是怎么回事啊?麻烦哪位给解答一下~~~~~…

查看全部问答>

【求助】F1122 AD模块功耗偏大

准确的问题点已经找到,只要将P2.4设置成输入(P2.0输入,两个端口都对地接10K电阻,其余都设成输出),启动AD P2.0采集,经测试,不论有没有REF输出,P2.4瞬间出现80MV左右的尖脉冲,此时电流都很大。 没有REF输出时,只要将P2.4直接对地短路(接 ...…

查看全部问答>

F149驱动L298N的问题

请教各位大虾,我用F149通过L298N驱动两个9伏的电机。单片机io口直接连电机驱动模块,感觉所有的连线都没有错误,但是电机驱动端输出的电压只有0伏。是不是单片机IO口的电压太低呢??…

查看全部问答>

关于44b0-IIC问题,请各位倘有帮忙看下

我是在网上找的44b0的iic程序,但是在读写E2PROM是总是读出个ff,我的开发板用的是st24c08的E2PROM,这个问题困扰我很久了,我也对照了下时序,也没有发现什么问题,请各位坛友一定要帮这个忙啊!下面是程序: void Test_Iic(void) { unsign ...…

查看全部问答>

8259a手册中关于优先级轮换模式的描述举例是不是有错误啊

轮换之前 轮换之后 优先级情况为什么会变成这样呢? [ 本帖最后由 ytzys 于 2012-3-26 10:28 编辑 ]…

查看全部问答>