![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂学杂记
文章平均质量分 81
小默_Allent
IT从业新人,非著名码农程序猿IT民工
展开
-
固定翼XPlane+PX4 硬件在环(HITL)仿真配置
将UDP rate调整到20-50Hz,如果频率过高,最终QGC接收并转发给飞机的传感器数据帧率也会特别高,增加飞机负担,导致TELEM1接出来的数据延时较高。1.点击组件->HIL Config,在弹出的小窗点击连接,此时可看到飞机正常XPlane模拟的传感器数据后,在QGC上显示出飞机的位置。1.打开XPlane,此处以PT60RC机型,郑州新郑机场为起飞机场示例,选择完毕后点击FLY with these options。),更高版本中,已移除对HLAStar(XPlane)机型支持。转载 2024-06-26 14:55:32 · 71 阅读 · 0 评论 -
不开源开发板定制固件方法
dd备份 SD卡镜像备份 克隆镜像原创 2021-12-21 18:45:34 · 970 阅读 · 0 评论 -
杂学杂记(三)关于ioctl设备控制的一些分析
大部分驱动除了需要具备读写设备的能力外,还需要具备对硬件控制的能力。例如,要求设备报告错误信息,改变波特率,这些操作常常通过ioctl方法来实现。 在用户空间打开一个设备, 如I/O设备可用open()打开,网络协议可用socket()打开等,获取一个文件描述符后,就可以在这个描述符上调用ioctl()来向内核交换数据。 要定义自己的ioctl操作,可以有两原创 2013-01-05 16:06:02 · 914 阅读 · 0 评论 -
linux中Oops信息的调试及栈回溯
Oops 信息来源及格式Oops 这个单词含义为“惊讶”,当内核出错时(比如访问非法地址)打印出来的信息被称为 Oops 信息。Oops 信息包含以下几部分内容。1 一段文本描述信息。比如类似“Unable to handle kernel NULL pointer dereference at virtual address 00000000”的信息,它说明了发生的是翻译 2013-10-31 10:19:38 · 2185 阅读 · 0 评论 -
DEVICE_ATTR的使用
DEVICE_ATTR的使用使用DEVICE_ATTR,可以在sys fs中添加“文件”,通过修改该文件内容,可以实现在运行过程中动态控制device的目的。类似的还有DRIVER_ATTR,BUS_ATTR,CLASS_ATTR。这几个东东的区别就是,DEVICE_ATTR对应的文件在/sys/devices/目录中对应的device下面。而其他几个分别在driver,bus,c转载 2014-12-08 16:08:31 · 643 阅读 · 0 评论 -
去掉linux内核版本号自动添加的“+”号
在一次编译kernel版本的时候我突然发现,“2.6.35.7“的内核版本编译成功后生成的版本号变成了“2.6.35.7+”,百思不得其解为什么后面会多一个加号。一步一步的查找,我发现了问题所在,原来问题出现在linux的版本控制这一块。打开Makefile我们可以在文件的最上面可以发现VERSION = 2PATCHLEVEL = 6SUBLEVEL = 35EXTRAVER转载 2015-03-05 11:43:43 · 2001 阅读 · 0 评论 -
fork()和vfork()的区别
fork()与vfork()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别:1. fork():子进程拷贝父进程的数据段,代码段vfork():子进程与父进程共享数据段2. fork()父子进程的执行次序不确定vfork保证子进程先运行,在调用exec或exit之前与父进程数据是共享的,在它调用exec或exit之后父进程才可能被调度运行。3.转载 2015-03-24 10:57:35 · 1040 阅读 · 0 评论 -
虚拟内存与地址转换
虚拟内存无处不在:搞偏底层一点语言的同学可能经常碰到segmentfault这类异常,这反映的是vm对物理地址进行保护;而使用java这样对内存使用挥金如土的语言的同学,又会碰到频繁swap的问题,这反映的是vm把物理内存当cache用,总之样样都有它的影子;本文主要讲虚拟内存如何把主存当做磁盘上地址空间的快取,以及虚拟内存上的地址到实际物理地址的转换一.虚拟内存用作高速缓存 以32转载 2015-08-12 17:47:29 · 880 阅读 · 0 评论 -
linux网络设备—PHY
一.结构体1.PHY设备[cpp] view plaincopystruct phy_device { struct phy_driver *drv; //PHY设备驱动 struct mii_bus *bus; //对应的MII总线 struct device dev; //设备文件转载 2015-08-12 17:51:54 · 780 阅读 · 0 评论 -
杂学杂记(四)C/C++下使用system()函数执行命令行命令简述
#include#include 函数原型:int system(const char *command)system函数可以调用一些DOS或者命令行命令,比如 system("cls");//清屏,等于在DOS上使用cls命令 system(“ls -al”);//清屏,等于在unix上使用ls -al命令 成功了返回0 失败了返回-1需要注意的是:该函数对字符原创 2013-01-16 11:19:33 · 4794 阅读 · 0 评论 -
杂学杂技(零)遇到问题及解决办法汇总
杂学杂技(零)--错误问题汇总,为我在工作学习过程中碰到的部分问题的最终解决办法,可能每个人的开发环境不同,相同问题不一定是相同的解决办法,仅供读者参考吧! ---by Jirmy Lee 13.1.51.nfs起根文件系统出现:VFS: Unable to mount r原创 2013-01-06 09:20:05 · 790 阅读 · 0 评论 -
杂学杂记(二)改善中断服务中的线程轮询方式为信号异步通知
先简要说一下这两种机制: 中断、poll机制一般都是应用程序主动去查询有无中断发生,即在应用程序主函数中采用while(1)不断查询有无中断发生,这样要额外消耗一个线程去查询(CPU占用率极高),及时采用poll机制降低CPU占用率,但是还是必须消耗一个线程不断循环查询while(1); 而异步通知是当中断发生时,驱动程序发送一个信号去提醒应用程序去读并执原创 2013-01-04 18:34:50 · 920 阅读 · 0 评论 -
杂学杂记(五)配置ARM开发板支持telnet远程访问
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。 telnet服务位于busybox中。原创 2013-01-16 17:37:47 · 4839 阅读 · 0 评论 -
程序优化的方法(C/C++)
对程序进行优化, 通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一, 一般是优化了代码的尺寸, 就会带来执行时间的增加, 如果优化了程序的执行速度, 通常会带来代码增加的副作用, 很难鱼与熊掌兼得, 只能在设计时掌握一个平衡点。 一、程序结构的优化 1 、程序的书写结构 虽然书写格式并不会影响生成的代码质量, 但是在实际编写程序时还是应该尊循一定的书原创 2013-02-18 08:42:28 · 1637 阅读 · 0 评论 -
杂学杂记(六)智能指针简介(强指针、弱指针)
智能指针的原理及实现 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个原创 2013-02-21 14:26:56 · 867 阅读 · 0 评论 -
改进uboot,添加自定义快捷菜单
1、在common目录下新增cmd_menu.c文件,内容为: #include#include#ifdef CONFIG_MENUKEYstatic char awaitkey(unsigned longdelay, int* error_p){ int i; charc; if (delay ==-1) {原创 2013-10-29 11:46:35 · 970 阅读 · 0 评论 -
Linux下简单线程池的实现
大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个服务请求到达,就创建一个新的服务线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁原创 2013-11-01 12:00:39 · 1384 阅读 · 0 评论 -
[UBOOT]main_loop函数分析!
1。main_loopcommon/main.c main_loop又臭又长,去掉宏注释掉的部分就只剩下一点点了。如下: void main_loop (void){#ifndef CONFIG_SYS_HUSH_PARSER static charlastcommand[CONFIG_SYS_CBSIZE] = { 0, }; intlen;转载 2013-11-19 11:16:02 · 1036 阅读 · 0 评论 -
ioctl函数详细说明
ioctl函数 本函数影响由fd参数引用的一个打开的文件。 #includeint ioctl( int fd, int request, .../* void *arg */ );返回0:成功 -1:出错 第三个参数总是一个指针,但指针的类型依赖于request参数。 我们可以把和网络相关的请求划分为6类:套接口操作文件操作接口操作A转载 2013-12-17 19:13:30 · 3117 阅读 · 0 评论 -
杂学杂记(一)给数据加上包头
------------------------------------------------------------------------------------------------------------------------------------------------- 杂学杂记·重要声明---------------------------原创 2013-01-04 09:38:55 · 930 阅读 · 0 评论