- 博客(63)
- 资源 (3)
- 收藏
- 关注
原创 Config Error: Failed to update IO firmware
报这个错是因为 fmu会要求iomcu发送iofirmware的CRC,然后fmu假如没收到CRC或者CRC不对就会报 Failed to update IO firmware。先给IOMCU烧录bootloader(/ardupilot/Tools/bootloaders/iomcu_bl.bin),通过jlink。重新配置和编译后,你就可以在bin目录看到arducopter_with_bl_hex。默认iomcu的晶振是24M的,假如你的是8M,注意相应匹配。
2025-03-06 09:56:35
632
1
原创 “command line option syntax error,Type command/?for help
安装时出现“command line option syntax error,Type command/?for help可能是因为你的安装源文件所在的路径中有中文,所以你可将安装文件放在一个没有中文的路径。
2014-05-12 18:01:04
2515
原创 ..\main.c(173): error: #7: unrecognized token
..\main.c(173): error: #7: unrecognized token 这个错误可能是拷贝的时候,中间有中文,或者其他不能识别的,看不见的字符。keil 编译的时候就会出错。 解决:找到那一行,删除那些不可见的字符即可。
2013-10-15 10:45:18
22066
1
原创 wpa_supplicant 与 wireless tools
wpa_supplicant是一个最好的选择,但缺点是它不支持所有的驱动。 wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP。 一、编译wpa_supplicant http://hostap.epitest.fi/wpa_supplicant/ 下载wpa_supplication http://www.openssl.org/
2013-05-23 16:13:28
4305
原创 error while loading shared libraries: libiw.so.29: cannot open shared object file: No such file
问题:error while loading shared libraries: libiw.so.29: cannot open shared object file: No such file or directory 解决:这个错误是没有导入动态库。只需导入LD_LIBRARY_PATH就行了。 比如export LD_LIBRARY_PATH=/usr/local/rw:$
2013-05-23 09:31:45
4351
原创 u-boot Makefile完全解读
编译u-boot的步骤: #make XX_config XX表示某个cpu体系 #make 生成我们需要的u-boot.bin 具体可参考u-boot文件中的README。 1.设置版本 VERSION = 2010 PATCHLEVEL = 06 SUBLEVEL = EXTRAVERSION = -rc1 ifneq "$(SUBLEVEL)" "" U_
2013-04-27 14:28:08
3145
原创 移植wireless extension
1.认识wireless extension Wireless Extension (WE)是一组通用的API,能在用户空间对通用Wireless LANs进行配置和统计。它的好处在于仅通过一组单一的工具就能对各种各样的Wireless LANs进行管理,不过它们是什么类型,只要其驱动支持Wireless Extension就行;另一个好处就是不用重启驱动或Linux就能改变这些参数。 Wir
2013-04-22 16:36:47
1661
原创 写稳定性测试程序的一些经验
写稳定性测试程序是一个很繁琐的工程。程序要经得起摧残,要经得起岁月。 下面是经过风吹雨打的经验。 1.错误信息要规范 不能打印一串数据,或者return -1,或者打印“……失败”。要一看到错误信息就能明确的知道哪里出错了。 例如: printf("打开GPRS设备失败!\n"); 没有指出哪个阶段出错。 return -1; -1只是给了我们一个错误的信息,比如retu
2013-04-19 15:45:33
1668
原创 qt中怎样添加库文件
qmake -project qmake name.pro 在Qt中工程通过.pro文件管理,所以库文件要在.pro文件中添加。 1.添加库文件 静态库 linux:LIBS += your_lib_path/your_lib//动态库这样也可以,你们可以考虑。 动态库 linux:LIBS += -L your_lib_path -lyour_lib//经过测试了 例如:
2013-04-03 10:31:15
5436
原创 linux 获取系统信息常用命令
1.磁盘信息 [wang@localhost 桌面]$ du -sh ./mm 392K ./mm [wang@localhost 桌面]$ du -ak ./mm 376 ./mm/boot_nontrust.bin 4 ./mm/bt.sh 0 ./mm/check.md5 4 ./mm/rtk8723_bt_config 4 ./mm/startup.x 392
2013-03-30 09:41:54
2050
原创 linux 常用文本操作命令集
1.创建特定大小的文件dd [wang@localhost 桌面]$ dd if=/dev/zero of=test.data bs=1K count=2 2+0 records in 2+0 records out 2048 bytes (2.0 kB) copied,0.00112496 秒,1.8 MB/秒 其中if表示输入文件,of表示输出文件,bs表示单位块大小,cou
2013-03-26 16:57:11
1731
原创 linux命令之 交互式输入read
read是一个重要的命令,用于从键盘或标准输入中读取输入。 一般只有按回车键的时候才标志输入完毕,但有些情况下没法按回车键,read提供了一种不需要按回车键的方法。 1.-p “提示语句” 变量名 [wang@localhost 桌面]$ vim testcmd.sh #!/bin/bash read -p "Enter your name :" name1 name2 //
2013-03-25 14:01:05
3509
原创 linux命令之 玩转xargs
我们可以用管道将一个命令的标准输出重定向到另一个命令的标准输出,但是有些命令只能以命令行参数的形式接收数据,而无法接受通过stdin的数据,这个时候我们就要用到xargs。 xargs应该紧跟管道操作符之后。 1.将多行转换为单行,将单行转换为多行。 [root@localhost 桌面]# cat show.txt wang Hunan Chenzhou 123456
2013-03-22 17:21:53
1481
原创 shell 浮点运算工具bc
bc支持浮点数,是一个用于数学运算的高级工具。 [root@localhost 桌面]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type
2013-03-21 13:30:44
1613
原创 linux内核启动流程(下)
接上回 start_kernel在/init/main.c中定义 asmlinkage void __init start_kernel(void) { char * command_line; extern struct kernel_param __start___param[], __stop___param[]; smp_setup_processor_id();
2013-03-20 11:37:32
1754
原创 linux内核启动流程(上)
由内核Makefile分析可知, 文件linux/arch/arm/boot/compressed/head.S是linux内核启动过程执行的第一个文件。 .align start: .type start,#function //type指定start这个符号是函数类型 .rept 8 mov r0, r0 //空操作,重复八次 .endr b
2013-03-19 15:13:19
5881
原创 特殊按键--休眠键驱动
这是一个关于休眠和关机的按键驱动。板子:pxa31X系列 内核:2.6.25 这个驱动用到了内核文件操作,内核线程,等待队列,异步通知,并介绍了一种调试驱动的方法。 #include #include #include #include #include #include #include #include #include #include #include #inc
2013-03-12 16:40:20
2064
转载 PCSC 错误代码解析
Smart Card Error Values参考:http://technet.microsoft.com/zh-cn/subscriptions/aa924526 0x80100001L An internal consistency check failed. 0x80100002L The action was cancelled by a SCardCan
2013-03-12 14:26:58
6850
原创 git实用操作学习记录
git是一个版本控制系统。 查看系统有没装git [wang@localhost git]$ rpm -qa|grep -i git 或者直接 man git 1.下载 先把自己介绍给git系统 [root@localhost git]#git config --global user.name "williamwang" [root@localhost git]#git...
2013-03-06 19:22:54
31497
原创 gcc编译静态库和动态库
1.静态库的编译与使用 [wang@localhost 桌面]$ vim test.c #include int display() { printf("we are the best!\n"); return 0; } [wang@localhost 桌面]$ gcc -c test.c [wang@localhost 桌面]$ ar crv libtes
2013-03-04 13:29:55
896
原创 line 1: syntax error: unexpected word (expecting ")")
问题:上传到板子的可执行文件,运行后出现 line 1: syntax error: unexpected word (expecting ")") 解决: 1.编译器的问题 用arm-linux-gcc编译,可能原来是用gcc编译的。假如是脚本,#!/bin/sh 改 #!/bin/bash试试 2.文件完整性 重新烧写或上传一遍 3.编译命令问题 比如我的
2013-03-01 16:33:53
52739
1
原创 驱动编译 通用的Makefile
驱动程序编译为模块的Makefile如下: KERNELSRC = /home/wang/william/linux-2.6.25 #内核所在路径 obj-m += driver_led.o #编译模块需要的文件,即要编译的驱动程序的目标文件 all: make -C $(KERNELSRC) M=$(PWD) modules clean:
2013-03-01 16:10:16
1778
原创 实例操作led驱动
/*the driver is for led writted by william in 2013.2.27 and the kernel 2.6.25*/ #include //动态加载模块到内核,假如没有这个头文件,编译一切正常,但是安装驱动模块后,不会产生节点,即不成功。 #include #include #include #include #include #i
2013-03-01 14:36:16
895
原创 linux OBM分析
marvell的bootloader是blob+OBM+bootROM,所以还得编译OBM。 下面就对OBM进行分析。 查看OBM/Build/obm_linux.mak 文件,找到需要编译的文件。 OBJS = obm_startup.o \ $(DDROBJS) \
2013-02-25 17:34:32
2553
原创 awk实例操作学习记录
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。 awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出
2013-02-23 13:19:57
852
原创 编译blob
1.修改flash驱动 在configure.in中找到你所使用的板子, 修改为case "$network_name" in eth) dnl BLOB_NETWORK_DRIVER_OBJS="ether-smc91x.o" //dnl 起注释作用 BLOB_NETWORK_DRIVER_OBJS="ether-dm9000.o p
2013-02-22 10:36:11
1132
原创 blob分析(下)
下面到了main()里面 /* initialise status */ blob_status.paramType = fromFlash; //设置boot参数 blob_status.kernelType = fromFlash; //设置内核 blob_status.ramdiskType = fromFlash; //设置文件系统加载方式 blob
2013-02-21 19:46:16
2084
原创 blob分析(上)
针对pxa芯片的blob分析 Blob 编译后的代码定义最大为64Kb,并且这64Kb又分成两个阶段来执行。 第一阶段的代码在start.S 中定义,大小为1KB,它包括从系统上电后在0x00000000 地址开始执行的部分。这部分代码运行在Flash 中,它包括对一些寄存器的初始化和将Blob第二阶段代码从Flash 拷贝到 sdram 中。 第二阶段的起始文件为trampol
2013-02-21 16:27:53
2378
原创 shell中特殊变量$0 $1 $# $$ $! $?的涵义
$0: 执行脚本的名字 $*和$@: 将所有参数返回 $#: 参数的个数 $_: 代表上一个命令的最后一个参数 $$: 代表所在命令的PID $!: 代表最后执行的后台命令的PID $?: 代表上一个命令执行是否成功的标志,如果执行成功则$? 为0,否则不为0 写个脚本测试下 [wang@localhost 桌面]$ vim test1.sh #
2013-02-20 14:43:44
22084
原创 shell中引号的用法
1.‘’与“”单引号和双引号 单引号和双引号其实差不多,主要泣别如下: ‘’单引号:凡是单引号内的所有特殊字符都无效 ”“双引号:在双引号内的特殊字符大部分无效,有些则会保留,比如$ \等 例如: [wang@localhost ~]$ A=B C bash: C: command not found [wang@localhost ~]$ A="B C" [wang@loca
2013-02-20 13:10:54
895
原创 hcid 分析
hcid分析实际上就是蓝牙启动流程的分析。 先看用法:hcid [-n] [-d] [-m mtu] [-f config file] 进入main()函数: 1.hcid的一些默认设置,例如安全方式,名字等 init_defaults(); static inline void init_device_defaults(struct device_opts *
2013-02-18 11:35:24
4208
1
原创 hcitool 使用与分析
Usage: hcitool [options] [command parameters] Options: --help Display help -i dev HCI device Commands: dev Display local devices inq Inquire r
2013-02-01 17:10:20
5845
原创 简要分析蓝牙驱动
蓝牙驱动我们只要做三个步骤: 1.启动串口驱动 2.蓝牙初始化 3.通过hciattach建立串口和蓝牙协议层的数据连接通道 为什么呢? 1.从整体上来说,我们的蓝牙是一个模块,顾名思义,该有的都有了,剩下的是与蓝牙芯片相关的。另外模块供应商应该都会提供他们自己的代码。 2.通讯条件。首先必须和CPU通讯,这需要个接口,这个接口可以是
2013-02-01 13:59:11
2185
原创 hci_uart 分析
先从初始化开始 __init hci_uart_init(void) { …… //注册ldisc hci_uart_ldisc.magic = TTY_LDISC_MAGIC; //通过i = N_HCI; if (ioctl(fd, TIOCSETD, &i) hci_uart_ldisc.name= "n_hci";
2013-02-01 12:13:14
4049
原创 串口termios函数
linux使用terminfo数据库来描述终端能力以及调用对应功能的方法 POSIX定义了完成终端I/O的标准方法:TERMIOS函数族 #include #include struct termios{ tcflag_t c_iflag; /* input modes */ tcflag_t c
2013-01-31 17:29:06
11881
原创 line 1:syntax error: unexpected "("
问题:./hciattach: line 1: syntax error: unexpected "(" 解决: 出错后,在代码那完全找不到信息。 那只可能是编译器这出错了,也可能是内核与用的这个应用不一致,先查看Makefile文件 它是用gcc编译的 ,改用arm-linux-gcc 就OK了。 假如还有问题,可能是路径没设好,请查看 arm-linux-gcc -v
2013-01-30 21:16:36
19813
原创 hciattach 分析
hciattach的功能是:建立串口和蓝牙协议层的数据连接通道。 源代码参考 tools/hciattach.c 先看hciattach的用法 hciattach [-n] [-p] [-b] [-r] [-t timeout] [-s initial_speed] [speed] [flow|noflow] [bdaddr] hciattach -l hciattach的结
2013-01-30 16:43:03
9612
原创 linux命令之tee
tee 重定向输出到多个文件 在执行Linux命令时,我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令 要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取。 $ man tee NAME tee - read from standard input and write to standard output an
2013-01-28 20:16:24
21016
1
原创 linux驱动测试用的各种读动作
这是一个linux各种读的动作,用于驱动测试这是一个linux各种读的动作,用于驱动测试。 #include #include #include #include #include #include #include #include #include #include #define READ_TRACK3_STATE _IOR('k', 2, int) static
2013-01-28 19:44:13
811
原创 蓝牙调试
bluetooth 测试: 注意: 1.出错,第一反应是查看出错信息 2.对某个命令和函数产生怀疑或不懂,请先运行和不运行它进行比较 1.检测硬件是否启动 #ifconfig …… wlan0 Link encap:Ethernet HWaddr 00:0E:09:A0:01:0A inet addr:192.16
2013-01-28 18:31:44
5478
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅