【开发/调试工具】【Linux】嵌入式Linux环境下如何自动化执行操作

简介: 【开发/调试工具】【Linux】嵌入式Linux环境下如何自动化执行操作

引子


  • 在嵌入式Linux的开发调试过程中,有时需要执行一些复杂的操作,诸如shell登陆、重复执行命令等操作,如果全部人工来执行,效率低下且有时不现实。


  • 本文将常用的嵌入式Linux环境下自动执行操作的方法做一总结,供各位参考。


编程语言方式


shell脚本


  • shell脚本就是为Linux而生的,登陆Linux的shell之后,shell脚本基本上可以完成各种复杂的逻辑,如循环、判断、执行命令等,相关资料很多,这里就不再赘述了。


Python程序


  • 例1、利用python向串口发送ifconfig指令


 # 导入模块
 import serial
 # 需要发送的串口指令
 cmd = 'ifconfig'
 # 将字符串转换成字节
 cmd=bytes.fromhex(cmd)
 # 生成串口
 serial_com = serial.Serial("com1", 115200, timeout=5)
 # 发送串口指令
 serial_com.write(cmd)
 # 读取串口返回结果
 serial_com.read(1024)
 # 关闭串口
 serial_com.close()


VBS脚本(配合SecureCrt软件)


  • 例1、每3s执行一次ifconfig命令


#$language = "VBScript"
#$interface = "1.0"
Sub  main
crt.Screen.Synchronous = True
While 1
    crt.Screen.Send "ifconfig" & VbCr
    crt.Screen.WaitForString "#"
    crt.Sleep 1000*3
Wend
End Sub


  • 例2、自动登陆串口并连续读取三次snmp文件


#$language = "VBScript"
#$interface = "1.0"
Sub main
    Dim ReadCounter
    crt.Screen.Send VbCr 
    crt.Screen.WaitForString "login: "
    crt.Screen.Send "root" & VbCr
    crt.Screen.WaitForString "Password: "
    crt.Screen.Send "root" & VbCr
    crt.Screen.WaitForString "#"
    for ReadCounter = 1 to 3
        crt.Screen.Send "cat /proc/net/snmp" & VbCr
      crt.Screen.WaitForString "#"
      crt.Sleep 100
    next
    transmit "reboot^M" 
End Sub


ASPECT脚本(Procomm Plus自带)


例1、自动执行100次ifconfig命令


proc main
   integer Num                ; Integer variable to increment.
   for Num = 1 upto 100       ; Init variable and define loop.
     transmit "ifconfig"
     waitfor "#"
   endfor
endproc


例2、周期查看pci设备并重启设备


proc main
  integer WaitCounter= 0
  while (WaitCounter++) < 1000
        transmit "root^M"
        waitfor "Password:"
        transmit "root^M"
      waitfor "#"
      transmit "ls /proc/bus/pci/devices ^M"
        waitfor "#"
      transmit "reboot^M"     
      pause 2400
  endwhile
endproc


利用expect


  • 例1、自动登陆ssh:


#!/usr/bin/expect -f
set timeout 30
spawn ssh -l my_username@192.168.1.1
expect "password:"
send "my_password\r"
interact


工具方式


MobaXterm


  • 该软件自带Macro功能,可根据需要组合键盘的回车、换行、文字输入、sleep等操作:



IPOP


  • 终端工具,这里可按文件或文本方式输入各种命令:



串口精灵


  • 发送数据可发送十六进制(HEX)格式和ASCII码,可以设置定时发送的数据以及时间间隔。可以自动显示接收到的数据,串口调试精灵官方版支持HEX或ASCII码显示。是工程技术人员监视、调试串口程序的必备工具。



MicroLab


  • 支持串口/网络动态指令编程:



小结


  • 本文简单探讨了几种Linux环境下自动执行命令的方式,具体如何选用可根据实际的环境和需要来选取;


  • 至于具体的使用的语言或工具本身,网上都有相关资料,需要时可深入了解一下。
相关文章
|
5天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
47 13
|
29天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
35 4
|
2月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
427 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
98 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
45 3
|
2月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
72 6
|
1月前
|
Linux UED iOS开发
|
2月前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
56 3
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
112 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
517 3