学嵌入式以来踩到的坑!!!持续更新

12 篇文章 0 订阅
10 篇文章 0 订阅
1.由于虚拟机所在环境为64位,而交叉编译工具和其他工具大部分是32位的,所以要安装32位的工具sudo apt-get install lib32ncurses5
2.make menuconfig出现  'make menuconfig' requires the ncurses libraries. 
sudo apt-get install ncurses-dev 
3.make exyons_config时候出现找不到config或者make XXX_config时候如果显示无需对XXX_config,需要修改Makeconfig
#ARCH ?= $(SUBARCH)
ARCH ?=arm         大坑:arm后面不能有空格,否则会提示这是有个目录
#CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
 CROSS_COMPILE ?= arm-none-linux-gnueabi- 

对空格有严格要求
4.编译内核时候
 CC arch/arm/kernel/suspend.o
/tmp/ccLpG6m7.s: Assembler messages:
/tmp/ccLpG6m7.s:278: Error: garbage following instruction -- `dsb nshst'
/tmp/ccLpG6m7.s:294: Error: garbage following instruction -- `dsb nsh'
scripts/Makefile.build:308: recipe for target 'arch/arm/kernel/suspend.o' failed 
进入make menuconfig
解决:

Power management options --->

[] Suspend to RAM and standby 
5.1537的芯片1506的底版烧写的uboot特殊,光盘中的uboot-20130709是不能用的太老了
要去下载新版4412的uboot
6.如果写驱动时候把file_operations结构体成员的返回值写错,在进行这个操作时候内核就会报错,比如传送数据到app没有宝座,但是只收到一半或者一小部分,如果单纯测试驱动没问题但是应用接收的时候却接收数据不完整,可能原因:copy_to_user时候,最后一个参数不对,
或者sizeof时候结构体忘记加上struct ,相应的在应用端read时候也要接收和驱动传送一样的大小,否则传输数据会不完整
7.今天遇到一个ubuntu向下不兼容的问题,在使用韦东山老师官方制造的16.04ubuntu版本中,将uboot烧入闪存卡的时候会出现block is too large的问题,之前用的是32G闪存卡,所以出现快太大不能读取也能理解,但是我这之前成功烧写的16G闪存卡换了一个linux就烧写不了,所以抱着试一试的心态,再次安装了12.04的ubuntu,结果大吃一斤,成功烧入到闪存卡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值