导航:首页 > 操作系统 > linux串口启动

linux串口启动

发布时间:2023-03-19 23:47:07

Ⅰ 如何在linux上使用串口设备

简单的运行 dmesg 命令
$ dmesg | grep tty
输出:
[ 37.531286] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.531841] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.532138] 0000:04:00.3: ttyS1 at I/O 0x1020 (irq = 18) is a 16550A

setserial 命令
setserial 是一个程序用于设定并/或报告某个串口关联的配置信息。该信息包括串口用到的I/O 端口和中断号,以及Break键是否应被解释为Secure Attention Key 等等。 仅仅是输出如下的命令:
$ setserial -g /dev/ttyS[0123]
输出:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x1020, IRQ: 18
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3

带-g选项的setserial帮助找到你的Linux板子上的物理串口。
Linux 串口控制台程序
一旦串口被确定了,你就能使用许多的工具来配置Linux板子:
minicom- 用于控制modem和连接到mp 设备的最好的串口通信程序。
wvidial or other GUI dial up networking program - 一个内建智能PPP 拨号器。
getty / agetty - agetty 打开一个 tty 端口, 提示登录名称并调用 /bin/login 命令。
grub / lilo configuration - 配置串口为系统控制台。

Ⅱ linux必须手动启动串口服务

(1)在把项目打成jar包部署的时候,该jar包不能做成镜像容器运行,因为某些设备是采用485通讯,即是将设备的485线转成一个USB插入到服务器,之后服务运行的时候,是通过查询系统有哪些串口,并且是该USB的串口与服务进行通讯。整乎扰个流程通讯都是在物理服务器游顷余上面,做成镜像容器运行无法连接串口通讯。

(2)在运行jar包的时候,需要在服务器部署jdk,同时需要在部署好的jdk里面需要上传一些串口服务运行的RXTXcomm.jar和librxtxParallel.so,librxtxSerial.so,具体可以网络;在一些其他的物理服务器上面librxtxSerial.so这个文件的版本有时候有问题,需要安装x86_64-unknown-linux-gnu文件夹里面的librxtxSerial.so文件;同理window上的jdk也需要这些;

(3)程序运行出错提示的没有串口相关的文件jar包,这个需要需要考虑服务运行时候用的是那个神滚jdk,是否把(2)里面的文件放到程序运行的jdk里面

Ⅲ Linux如何配制成在启动的时候默认选择串口作为控制台,不输出到显示器

vim /etc/grub.conf配置里
在kernel那一行的,最后加上" console=ttyS0,115200"就可以了
注:console前要有空格,S0这个是S零

Ⅳ Linux串口相关的操作及绑定

@ toc

可在控制台输入

也可以用stty设置串口参数

使用后相当于串口回传,发什么回什么

发送数据

可以对串口发送数据比如对com1口

一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;

如果有ttyS设备,再看/dev/有没有ttyS*,如没有就建立一个:

如果板子的设备中没有标准串口设备ttyS0,也没有ttySAC0。/dev下应该有一个USB串口:/dev/ttyUSB0.

当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2),这完成看原已内建的串口数目。ttyS*设备会被报告在/var/run/stab内。

PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC

可能是linux下的串口设备没有打开,需要改变串口设备
的权限,或者根据文章头添加用户到组处理

可以通过以下命令 查看 板子上的硬件端口的内核设备名

该条命令会将 ttyUSB0所对应的硬件端口的kernel设备名 显现出来, 得到KERNEL== '1-5.5.4', 而不是之前的ttyUSB0

cmd.sh如下:

./getUSB.py 调用当前路径下的getUSB.py这个Python语言,明确此次是哪个,ttyUSB0,或者ttyUSB1挂载在端口3-1.1上

getUSB.py:

完成之后 ,设置开机启动cmd.sh(在/etc/rc.local中设置)则每次开机之后,会从/dev/ttydata获取到固定端口的数据

方式一

写入内容如下:

方式二

我的硬件序列号:ATTRS{serial}=="FTSYWCXZ"这个号是唯一的

可以通过/dev/usb_0打开串口设备

常用的匹配类型:

Ⅳ linux系统安装绿联串口驱动怎么安装

1、在控制台输入lsmod,先看看能否检测到这个设备,就看有没有pl2303字眼可以了。如果有,则不需要再装驱动。
2、另外如果有的话最好再用dmesg|grepusb查找如果看到:drivers/usb/serial/usb-serial.c:。就说明设备已被识别,然后往下看rivers/usb/serial/usb-serial.c:-2303,usb2-2:PL-(orusb/tts/0fordevfs)如果没有则需要驱动程序,一般硬件厂商都会提供,如果真的没有的话就只有到网上下载了,一般2.6内核以上的都支持。
3、安装完毕后再输入这个命令瞧瞧,是否安装成功。lsmod|grepusbserial。如果有usbserial,说明系统支持USB转串口。
4、驱动安装完毕后,就需要安装串口软件,这里推荐cutecom和puttycutecom安装sudoapt-getinstallcutecom。putty安装sudoaptinstallputty或sudopacman-Sputty
5、然后启动cutecom命令sudocutecom,之后你就可以看到哪些串口正在连接状态。
6、当开发板启动后,我们需要传入elf或bin文件,此时需要用到tftp,在控制台输入:sudoapt-getinstallxinetd,sudoapt-getinstalltftptftpd并等待安装完成后,输入:sudovi/etc/xinetd.d/tftp输入i,进入插入模式,随后按esc输入wq。保存。
7、第一次启动时和每次更换目录时都要执行sudo/etc/init.d/xinetdrestart,不然会找不到文件。
8、喜欢用putty的可以在控制台输入sudoputty运行程序。

Ⅵ Linux普通用户运行串口

将USB串口设备插入USB口后,会在/dev/目录下生成/dev/ttyUSB0文件(也可能为/dev/ttyUSB1,/dev/ttyUSB2...),
查看此文件

输出为:

c说明表明设备为字符设备文件(d表示目族掘录文件,-表示普通文件,l表示链接文件,b表示块文件),
其中rw-rw----表示root用户作为文件所有者可以读和写,dialout用户组内的用户可以读和搜穗兆写,其他用户不允许读、写和执行(r表示可读,w表示可写世租,x表示可执行)
因此,需要将当前用户增加到dialout用户组中

Ⅶ linux 启动时何时初始化console,串口等

1、LINUX下TTY、CONSOLE、串口之间是怎样的层次关系?具体的函数接口是怎样的?串口是如何被调用的?


2、printk函数是把信息发送到控制台上吧?如何让PRINTK把信息通过串口送出?或者说系统在什么地方来决定是将信息送到显示器还是串口?


3、start_kernel中一开始就用到了printk函数(好象是printk(linux_banner什么的),在 这个时候整个内核还没跑起来呢那这时候的printk是如何被调用的?在我们的系统中,系统启动是用的现代公司的BOOTLOADER程序,后来好象跳到了LINUX下的head-armv.s, 然后跳到start_kernel,在bootloader 里串口已经是可用的了,那么在进入内核后是不是要重新设置?


以上问题可能问的比较乱,因为我自己脑子里也比较乱,主要还是对tty,console,serial之间的关系,特别是串口是如何被调用的没搞清这方面的资料又比较少(就情景分析中讲了一点),希望高手能指点一二,非常谢!

我最近也在搞这方面的东西,也是写一个串口设备的驱动

搞了将近一个月了,其中上网找资料,看源代码,什么都做了

但还是一蹋糊涂的,有些问题还是不明白,希望一起讨论讨论


在/proc/device(没记错应该是这个文件)

里面有一个叫serial的驱动,其主设备号是4,次设备号是64-12X(没记错应该是这个范围)

大家都知道,串口的次设备号是从64开始的,串口1 /dev/ttyS0就对应次设备号64,串口2就对应65

问题是现在我机上只有两个串口,它注册这么多次设备号来干什么?


对于一个接在串口1的设备,在我注册驱动的时候

我是需要自己找一个主设备号呢?

还是就用主设备号4,次设备号从上面12X的后面选?

还是就用主设备号4,次设备号64?


在linux的内核中有一个tty层,我看好像有些串口驱动是从这里开始的

例如调用tty_register_driver()来注册驱动

就像在pci子系统里调用pci_register_driver()那样的

那么,用这种机制来注册的驱动,

它是直接对串口的端口操作呢(例如用inb(),outb()....之类的)

还是某些更底层的驱动接口呢?


这些问题缠了我很久都没解决,搞得最后不得不放弃

现在转向用户空间的应用程序,看能不能有些更高效的方法来实现

(在用户空间只能用open("/dev/ttyS0", O_RDWR)来实现了)

另外还有,系统里已经为我们实现了串口的驱动

所以我们在用户空间的程序里直接open("/dev/ttyS0")就可用了

但是现在要写的是接在串口上的设备的驱动

在内核模块中可不可以包含某个头文件,然后就可以直接用串口驱动中的接口呢?

看到你们的问题后,感觉很有典型性,因此花了点工夫看了一下,做了一些心得贴在这里,欢迎讨论并指正:

1、LINUX下TTY、CONSOLE、串口之间是怎样的层次关系?具体的函数接口是怎样的?串口是如何被调用的?

tty和console这些概念主要是一些虚设备的概念,而串口更多的是指一个真正的设备驱动Tty实际是一类终端I/O设备的抽象,它实际上更多的是一个管理的概念,它和tty_ldisc(行规程)和tty_driver(真实设备驱动)组合在一起,目的是向上层的VFS提供一个统一的接口通过file_operations结构中的tty_ioctl可以对其进行配置。查tty_driver,你将得到n个结果,实际都是相关芯片的驱动因此,可以得到的结论是(实际情况比这复杂得多):每个描述tty设备的tty_struct在初始化时必然挂如了某个具体芯片的字符设备驱动(不一定是字符设备驱动),可以是很多,包括显卡或串口chip不知道你的ARM Soc是那一款,不过看情况你们应该用的是常见的chip,这些驱动实际上都有而console是一个缓冲的概念,它的目的有一点类似于tty实际上console不仅和tty连在一起,还和framebuffer连在一起,具体的原因看下面的键盘的中断处理过程Tty的一个子集需要使用console(典型的如主设备号4,次设备号1―64),但是要注意的是没有console的tty是存在的

而串口则指的是tty_driver举个典型的例子:

分析一下键盘的中断处理过程:

keyboard_interrupt―>handle_kbd_event―>handle_keyboard_event―>handle_scancode

void handle_scancode(unsigned char scancode, int down)

{

……..

tty = ttytab? ttytab[fg_console]: NULL;

if (tty && (!tty->driver_data)) {

……………

tty = NULL;

}

………….

schele_console_callback();

}

这段代码中的两个地方很值得注意,也就是除了获得tty外(通过全局量tty记录),还进行了console 回显schele_console_callbackTty和console的关系在此已经很明了!!!


2、printk函数是把信息发送到控制台上吧?如何让PRINTK把信息通过串口送出?或者说系统在什么地方来决定是将信息送到显示器还是串口?

具体看一下printk函数的实现就知道了,printk不一定是将信息往控制台上输出,设置kernel的启动参数可能可以打到将信息送到显示器的效果。函数前有一段英文,很有意思:

/*This is printk. It can be called from any context. We want it to work.

*

* We try to grab the console_sem. If we succeed, it's easy - we log the output and

* call the console drivers. If we fail to get the semaphore we place the output

* into the log buffer and return. The current holder of the console_sem will

* notice the new output in release_console_sem() and will send it to the

* consoles before releasing the semaphore.

*

* One effect of this deferred printing is that code which calls printk() and

* then changes console_loglevel may break. This is because console_loglevel

* is inspected when the actual printing occurs.

*/

这段英文的要点:要想对console进行操作,必须先要获得console_sem信号量如果获得console_sem信号量,则可以“log the output and call the console drivers”,反之,则“place the output into the log buffer and return”,实际上,在代码:

asmlinkage int printk(const char *fmt, ...)

{

va_list args;

unsigned long flags;

int printed_len;

char *p;

static char printk_buf[1024];

static int log_level_unknown = 1;

if (oops_in_progress) { /*如果为1情况下,必然是系统发生crush*/

/* If a crash is occurring, make sure we can't deadlock */

spin_lock_init(&logbuf_lock);

/* And make sure that we print immediately */

init_MUTEX(&console_sem);

}

/* This stops the holder of console_sem just where we want him */

spin_lock_irqsave(&logbuf_lock, flags);

/* Emit the output into the temporary buffer */

va_start(args, fmt);

printed_len = vsnprintf(printk_buf, sizeof(printk_buf), fmt, args);/*对传入的buffer进行处理,注意还不是

真正的对终端写,只是对传入的string进行格式解析*/

va_end(args);

/*Copy the output into log_buf. If the caller didn't provide appropriate log level tags, we insert them here*/

/*注释很清楚*/

for (p = printk_buf; *p; p++) {

if (log_level_unknown) {

if (p[0] != '<' || p[1] < '0' || p[1] > '7' || p[2] != '>') {

emit_log_char('<');

emit_log_char(default_message_loglevel + '0');

emit_log_char('>');

}

log_level_unknown = 0;

}

emit_log_char(*p);

if (*p == ' ')

log_level_unknown = 1;

}

if (!arch_consoles_callable()) {

/*On some architectures, the consoles are not usable on secondary CPUs early in the boot process.*/

spin_unlock_irqrestore(&logbuf_lock, flags);

goto out;

}

if (!down_trylock(&console_sem)) {

/*We own the drivers. We can drop the spinlock and let release_console_sem() print the text*/

spin_unlock_irqrestore(&logbuf_lock, flags);

console_may_schele = 0;

release_console_sem();

} else {

/*Someone else owns the drivers. We drop the spinlock, which allows the semaphore holder to

proceed and to call the console drivers with the output which we just proced.*/

spin_unlock_irqrestore(&logbuf_lock, flags);

}

out:

return printed_len;

}

实际上printk是将format后的string放到了一个buffer中,在适当的时候再加以show,这也回答了在start_kernel中一开始就用到了printk函数的原因


3、start_kernel中一开始就用到了printk函数(好象是printk(linux_banner什么的),在这个时候整个内核还没跑起来呢。那这时候的printk是如何被调用的?在我们的系统中,系统启动是用的现代公司的BOOTLOADER程序,后来好象跳到了LINUX下的head-armv.s, 然后跳到start_kernel,在bootloader 里串口已经是可用的了,那么在进入内核后是不是要重新设置?

Bootloader一般会做一些基本的初始化,将kernel拷贝物理空间,然后再跳到kernel去执行。可以肯定的是kernel肯定要对串口进行重新设置,原因是Bootloader有很多种,有些不一定对串口进行设置,内核不能依赖于bootloader而存在。


多谢楼上大侠,分析的很精辟。我正在看printk函数。


我们用的CPU是hynix的hms7202。在评估板上是用串口0作

控制台,所有启动过程中的信息都是通过该串口送出的。

在bootloader中定义了函数ser_printf通过串口进行交互。


但我还是没想明白在跳转到linux内核而console和串口尚未

初始化时printk是如何能够工作的?我看了start_kernel

的过程(并通过超级终端作了一些跟踪),console的初始化

是在console_init函数里,而串口的初始化实际上是在1号

进程里(init->do_basic_setup->do_initcalls->rs_init),

那么在串口没有初始化以前prink是如何工作的?特别的,在

start_kernel一开始就有printk(linux_banner),而这时候

串口和console都尚未初始化呢。

  1. 在start_kernel一开始就有printk(linux_banner),而这时候串口和console都尚未初始化?

  2. 仔细分析printk可以对该问题进行解答代码中的:

  3. /* Emit the output into the temporary buffer */

  4. va_start(args, fmt);

  5. printed_len = vsnprintf(printk_buf, sizeof(printk_buf), fmt, args);

  6. va_end(args);

  7. 将输入放到了printk_buf中,接下来的

  8. for (p = printk_buf; *p; p++) {

  9. if (log_level_unknown) {

  10. if (p[0] != '<' || p[1] < '0' || p[1] > '7' || p[2] != '>') {

  11. emit_log_char('<');

  12. emit_log_char(default_message_loglevel + '0');

  13. emit_log_char('>');

  14. }

  15. log_level_unknown = 0;

  16. }

  17. emit_log_char(*p);

  18. if (*p == ' ')

  19. log_level_unknown = 1;

  20. }

  21. 则将printk_buf中的内容进行解析并放到全局的log_buf(在emit_log_char函数)中if (!down_trylock(&console_sem)) {

  22. /*

  23. * We own the drivers. We can drop the spinlock and let

  24. * release_console_sem() print the text

  25. */

  26. spin_unlock_irqrestore(&logbuf_lock, flags);

  27. console_may_schele = 0;

  28. release_console_sem();

  29. } else {

  30. /*

  31. * Someone else owns the drivers. We drop the spinlock, which

  32. * allows the semaphore holder to proceed and to call the

  33. * console drivers with the output which we just proced.

  34. */

  35. spin_unlock_irqrestore(&logbuf_lock, flags);

  36. }

  37. 则是根据down_trylock(&console_sem)的结果调用release_console_sem(),在release_console_sem()中才真正的对全局的log_buf中的内容相应的console设备驱动进行处理。至此,可以得到如下的一些结论:

  38. (1)printk的主操作实际上还是针对一个buffer(log_buf),该buffer中的内容是否显示(或者说向终端输出),则要看是否可以获得console_sem(2)printk所在的文件为printk.c,是和体系结构无关的,因此对任何平台都一样。 可以推测的结论是:

  39. (1)kernel在初始化时将console_sem标为了locked,因此在start_kernel一开始的printk(linux_banner)中实际只将输入写入了缓冲,等在串口和console初始化后,对printk的调用才一次将缓冲中的内容向串口和console输出。 (2)在串口和console的初始化过程中,必然有对console_sem的up操作。

  40. (3)因此,在embedded的调试中,如果在console的初始化之前系统出了问题,不会有任何的输出。 唯一可以使用的只能是led或jtag了。(4)因此,你的问题可以看出解答。2.console的初始化.

  41. 不知道你用的是那一个内核版本,在我看的2.4.18和2.4.19中,都是在start_kernel中就对console进行的初始化。从前面的分析来看,console的初始化不应该太晚,否则log_buf有可能溢出。

  42. 多谢楼上,分析的很精彩!

我们用的内核版本是2.4.18,console的初始化确实是在

start_kernel->console->init。关于tty和串口,我这里还想再问一下tty设备的操作的总入口


static struct file_operations tty_fops = {

llseek: no_llseek,

read: tty_read,

write: tty_write,

poll: tty_poll,

ioctl: tty_ioctl,

open: tty_open,

release: tty_release,

fasync: tty_fasync,

};


而对串口的操作定义在:


static struct tty_driver serial_driver 这个结构中

serial.c中的多数函数都是填充serial_driver中的函数指针

那么在对串口操作时,应该是先调用tty_fops中的操作(比如

tty_open等),然后再分流到具体的串口操作(rs_open等)吧?

但tty_driver(对串口就是serial_driver)中有很多函数指针

并不跟file_operations中的函数指针对应,不知道这些对应

不上的操作是如何被执行的?比如put_char,flush_char,read_proc,

write_proc,start,stop等。

以下是我对这个问题的一些理解:

这实际上还是回到原先的老问题,即tty和tty_driver之间的关系。从实现上看,tty_driver实际上是tty机制的实现组件之一,借用面向对象设计中的常用例子,这时的tty_driver就象是tty这部汽车的轮胎,tty这部汽车要正常运行,还要tty_ldisc(行规程),termios,甚至struct tq_struct tq_hangup(看tty_struct)等基础设施。它们之间的关系并非继承。至于tty_driver中的函数指针,再打个C++中的比喻,它们实际上很象虚函数,也就是说,可以定义它们,但并不一定实现它们、实际上还不用说tty_driver,只要查一下serial_driver都会发现n多个具体的实现,但对各个具体的设备,其tty_driver中的函数不一定全部实现、所以put_char,flush_char,read_proc, write_proc,start,stop这些函数的情况是有可能实现,也有可能不实现 即使被实现,也不一定为上层(VFS层)所用.

Ⅷ linux 串口驱动程序术语介绍

在Linux中经常碰到“控制台”、“终端”、“console”、“tty”、“terminal”等术语,也经常使用到这些设备文件:ldevconsole、/dev/ttySACO、/dev/tty0等。要理解这些术语,需要从以前的计算机说起。
最初的计算机价格昂贵,一台计算机通常连接上多套键盘和显示器供多人使用。在以前专门有这种可以连上一台电脑的设备,它只有显示器和键盘,外加简单的处理电路,本身不具有处理计算机信息的能力。用户通过它连接到计算机上(通常是通过串口),然后登录系统,并对计算机进行操作。这样一台只有输入、显示部件(比如键盘和显示器)并能够连接到计算机的设备就叫做终端。tty 是Teletype 的缩写,Teletype是最早出现的一种终端设备,很像电传打字机。在Linux中,就用tty来表示“终端”,比如内核文件tty_io.c、tty _ioctl.c等都是与“终端”相关的驱动程序;设备文件/dev/ttySACO、/dev/tty0等也表示某类终端设备。“console”的意思即为“控制台”,顾名思义,控制台就是用户与系统进行交互的设备,这和终端的作用相似。实际上,控制台与终端相比,也只是多了一项功能:它可以显示系统信息,比如内核消息、后台服务消息。从硬件上看,控制台与终端都是具备输入、显示功能的设备,没有区别。“控制台”、“终端”、“控制终端”这些名词经常混着用,表示的是同一个意思。
控制台与终端的区别体现在软件.上,Linux内核从很早以前发展而来,代码中仍保留了“控制台”、“终端”的概念。启动Linux内核前传入的命令行参数“console=…”就是用来指定“控制台”的。控制台在tty 驱动初始化之前就可以使用了,它最开始的时候被用来显示内核消息(比如 printk 函数输出的消息)。

Ⅸ Linux串口调试工具--minicom

安装完成后,请不要着急打开软件。需先进行配置。具体步骤如下:
查看串口设备及文件权限
linux下的所有操作面向用户的都是文件操作,在对串口操作之前,我们应该先确认自己对该文件有没有读写权限。

linux下的usb串口命名为ttyUSB*,运行上面命令,可以看到有几个设备挂载。
我们这里是:

只有ttuUSB0.再用lsusb查看:

usb 004正是我们挂上去的usb转串口线缆,使用的芯片是PL2303。
但是正如上面显示,ttyUSB0这个设备是root所有的,所以,我们以普通用户身份打开minicom是没法访问该文件的。

运行sudo minicom -s便进入了minicom的配置界面,使用上下键选择Serial port setup,回车。此时光标在“change which setting”后面停留,它的上面有如下菜单:

我们只需输入上面对应的字母,就可以进如相应的菜单进行设置。设置完成,回车,光标会回到“change which setting”后面,如此重复。完成按回车返回主菜单即可。
返回主菜单后,选择“Save setup as df1”,将其保存为默认设置,然后选择 Exit退出。需退出后重新打开minicom,软件才会使用上述参数进行初始化。

注意:如果没有使用USB转串口,而是直接使用串口,那么Serial Device要配置为/dev/ttyS0。

如果上面设置顺利,打开minicom

重新给设备上电后,此时,窗口里就有信息打印出来了。

1)需使用Ctrl+a 进入设置状态

2)按z进入设置菜单

(1)O键:打开配置选项;

(2)W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用。

(3)C键:清除屏幕的显示内容;

(4)B键:浏览minicom的历史显示;

(5)X键:退出minicom,会提示确认退出。

Ctrl + A --> O

选择"Filenames and paths"

更多的参数,参见"man minicom"的输出。

如果不加这个项,那么在minicom和pc交互的时候中键入命令超过一行时候会被截断,(这时候可以通过 <C-a> w 来开和关切换截断行功能).

这样,启动之后我们会发现显示的内容不是黑白的了。

这样,启动之后,所在minicom的输出都会在<filename>中保留一份,如果原来文件存在,则追加,不存在则创建一个。

这样,我们可以取代用 <C-a> * 发送命令的方式,将 <C-a> 替换成 [Alt] 或者 [ESC] .

这里,<filename>是你的脚本文件的名字,应该指定绝对路径,否则就会在你启动minicom的路径下寻找。

Minicom是基于窗口的。要弹出所需功能的窗口,可按下 Ctrl-A (以下使用C-A来表示Ctrl-A),然后再按各功能键(a-z或A-Z)。先按C-A,再按'z',将出现一个帮助窗口,提供了所有命令的简述。配置 minicom(-s 选项,或者C-A、O)时,可以改变这个转义键,不过现在我们还是用Ctrl-A吧。
这里,只给出很少的命令,更多的交互命令参见"<C-a> z"的帮助输出。

minicom -s 或启动minicom之后运行 <C-a> o 来进行配置。

C:脚本文件的存放位置: <C-a> g 运行脚本时的路径 。
D:选择脚本程序: 默认 runscript ,也可以选择 bash 脚本格式。

可以参考man手册 man runscript .交互命令中可以运行" <C-a> G "来运行脚本。

参考资料

阅读全文

与linux串口启动相关的资料

热点内容
python符号表达式 浏览:32
威驰压缩机继电器 浏览:869
华为手机怎么设置移动数据app 浏览:957
空调压缩机哪的厂家多 浏览:388
手指速算法24加7怎么算 浏览:137
如何用python写vlookup函数 浏览:796
社保加密狗厂商 浏览:214
php编译运行说法 浏览:955
程序员说喂 浏览:256
抖音直播云服务器 浏览:627
一加7pro文件夹data 浏览:424
程序员淋雨 浏览:965
python输出数字序列中的空格 浏览:78
怎么将pdf文件大小 浏览:734
氧原子相对分子量算法 浏览:988
加密机为什么是安全的 浏览:451
单片机拼音输入法 浏览:807
苹果笔记本t2加密芯片怎么打开 浏览:797
安卓如何把手机投屏至电视 浏览:759
方舟编译器现在可提速哪些软件 浏览:61