preempt
1引言
通常情况下工程师在调试Qt程序时,需要频繁制作镜像烧录到核心板来测试Qt程序是否完善,这样的操作既费时又费力。这时我们可以通过QtCreator设备功能,定义设备后,在x86_64虚拟机上交叉编译qt程序,将程序远程部署到arm64的机子上,然后远程调试,大大提高开发效率。
2. 调试环境
本文基于HD-T113-EVM评估板进行验证,HD-T113-EVM基于HD-T113-S3核心板设计,具备千兆网口、双路CAN-bus、2路RS-232、2路RS-485、LCD、4G/5G、WiFi、音频等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。
![](https://p0.ssl.img.360kuai.com/t013915661575d3b5b0.jpg)
Linux主机 | VM16.1.0 + Ubuntu18.04 |
交叉编译器 | arm-linux-gnueabihf |
Qt版本 | Qt5.12.12 |
核心板版本 | HD-T113-S3 v1.1 |
内核版本 | Linux kunos 5.4.61 #2 SMP PREEMPT Tue Dec 12 17:29:56 CST 2023 armv7l GNU/Linux |
底板版本 | HD-T113-EVM v1.2 |
2.1 调试前准备
使win10主机、arm开发板和linux虚拟机处于同一网段且三者能互相ping通配置虚拟机ip。虚拟机需要按照以下截图步骤进行设置。
![](https://p0.ssl.img.360kuai.com/t0123969eab6a84ef0b.jpg)
![](https://p0.ssl.img.360kuai.com/t01ad073c32ee4d2455.jpg)
![](https://p0.ssl.img.360kuai.com/t01377d82f8995ca35d.jpg)
![](https://p0.ssl.img.360kuai.com/t01c6198820c049e331.jpg)
2.2 交叉编译环境设置
![](https://p0.ssl.img.360kuai.com/t01a0b88c2792b4ba59.jpg)
/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/qt5/bin/qmake
2.2.1 编译器
![](https://p0.ssl.img.360kuai.com/t0117e993a719ecb554.jpg)
GCC
/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-gcc
G++
/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-g++
2.2.2 Kits
![](https://p0.ssl.img.360kuai.com/t01158e9f3f314d7ae8.jpg)
2.3 创建新设备
打开工具->选项->设备,添加新的Generic Linux Device设备。
![](https://p0.ssl.img.360kuai.com/t01cd7aac5e94a5c3cb.jpg)
![](https://p0.ssl.img.360kuai.com/t01b3f9d5014a2af4ab.jpg)
![](https://p0.ssl.img.360kuai.com/t0165b319a1bd092604.jpg)
![](https://p0.ssl.img.360kuai.com/t01963c7d0bbfe04ebd.jpg)
![](https://p0.ssl.img.360kuai.com/t0196ac08361d1cfb40.jpg)
2.3.1 测试成功
![](https://p0.ssl.img.360kuai.com/t010262093d6c1e8636.jpg)
2.3.2 测试失败
1 - 错误描述SSH connectionfailure
![](https://p0.ssl.img.360kuai.com/t0116f43aae4658f4a3.jpg)
错误分析No routeto tohst找不到主机
解决方案检查虚拟机与开发板ip是否处于同一网段并且能互相ping通
2 - 如虚拟机与开发板可以正常ping通但无法ssh登录开发板
![](https://p0.ssl.img.360kuai.com/t01a7ebdddda346b257.jpg)
原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。
有以下两个解决方案:
1.删除修改known_hsots记录,重新登录,使known_hsots生成新的记录;
2.修改配置文件“~/.ssh/config”,添加下两行,
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
重启服务器。
优缺点:
1.需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高;
2.SSH登陆时会忽略known_hsots的访问,但是安全性低;
2.4 设置Kits->Device
![](https://p0.ssl.img.360kuai.com/t01c0b26083c401f872.jpg)
2.5 部署应用
1 - 新建项目时,选择Kits为T113
![](https://p0.ssl.img.360kuai.com/t012b22b7f7a0764628.jpg)
2 - 编译应用
![](https://p0.ssl.img.360kuai.com/t010614714a41998801.jpg)
3 - 部署应用到开发板
![](https://p0.ssl.img.360kuai.com/t01fd2952e9769964e3.jpg)
4 - 提示
部署成功后,可能会提示。kbcommon: ERROR: failed to add defaultinclude path /usr/share/X11/xkb
5–运行结果展示
![](https://p0.ssl.img.360kuai.com/t0190cb979dede2574e.jpg)
卫废尤3792神州数码路由器设置 -
扶龙郝14754422248 ______ VRRP !号后面的注释!希望对你有用. 两台路由器中都建立vrrp组 2 和组 3 vrrp组2的虚拟IP是:192.168.0.2 255.255.255.0 vrrp组3的虚拟IP是:192.168.0.3 255.255.255.0 路由器A RouterA_config#interface fastEthernet 0/0.2 !进入子端口F0/...
卫废尤3792化合物目录数据库 exempt什么意思 -
扶龙郝14754422248 ______ exempt 英[ɪgˈzempt] 美[ɪɡˈzɛmpt] vt. 使免除,豁免; adj. 被免除的,被豁免的; n. 被免除(义务,责任)的人; 免税人; [网络] 豁免; 多半是免税的意思; 免除的; [例句]The Minimum Wage Ordinance does not apply to a work ...
卫废尤3792内核模块编译怎样绕过insmod时的版本检查 -
扶龙郝14754422248 ______ 一、先把 Moudle version 检查关掉. user@host # ARCH=arm make menuconfig --- Enable loadable module support │ │ │ │ [ ] Forced module loading │ │ │ │ [*] Module unloading │ │ │ │ [*] Forced module unloading │ │ │ │ [ ] ...
卫废尤3792rt preempt是软实时吗 -
扶龙郝14754422248 ______ 标准的Linux内核只达到了软实时的要求:对用户空间的时间处理提供了基本的POSIX操作,但是对硬时间限制没有保证.通过Ingo Molnar的Realtime Preemption patch(简称为RT-Preempt)和Thomas Gleixner的有着高精度支持的通用时钟事件层,内核就获得了硬实时的能力. RT-Preempt patch在业界已经获得了广泛的关注,它简洁的设计和向主线整合的目标使得它成为硬实时应用程序的有趣选择,不论是专业调音台还是工业控制.
卫废尤3792如何配置思科交换机的端口模式 -
扶龙郝14754422248 ______ 你这问题太模糊,交换机端口涉及的命令太多了,不知道你想配什么,也只能大概给你一个配置方法. 输入config进入特权模式.然后按你需求配置的端口进入里面进行配置,端口上相关命令可以按 ? 进行查询.例,以下命令就是在I光口G0/0/1上...
卫废尤3792请问:preempt - disable()和preempt - enable()问题
扶龙郝14754422248 ______ #define preempt_disable() \do { \ inc_preempt_count(); \ barrier(); \} while (0)#define preempt_enable() \do { \ preempt_enable_no_resched(); \ barrier(); \ preempt_check_resched(); \} while (0)#define preempt_enable_no_resched() \do { \ barrier(); ...
卫废尤3792英语字典中这些词是怎么回事
扶龙郝14754422248 ______ -,hyphen,是连字符.这些词目前只是因为比较常用,才这么些,但还没有非常确定成为一个词.比如basketball,在以前就是basket-ball,后来因为非常常用,最后就被认为是一个词,就把hyphen给去掉了.
卫废尤3792若一系统的指标如下,请指出在进行系统设计时最大中继距离为多少 -
扶龙郝14754422248 ______ 内核正在对每个CPU“私有”的数据结构操作(Per-CPU date structures).在SMP中,对于per-CPU数据结构未用spinlocks保护,因为这些数据结构隐含地被保护了(不同的CPU有不一样的per-CPU数据,其他CPU上运行的进程不会用到另一...
卫废尤3792利用HSRP如何实现IP路由容错?
扶龙郝14754422248 ______ 对于IP网络来说,Cisco的热备份路由协议(HSRP, Hot Standby Routing Protocol)... 其中的standby preempt接口设置命令允许当该路由器的优先级比组中的其他的路由器...