摘要: 配置telnetd遇到的一些坑,记录一下 BusyBox版本1.22.1 Networking Utilities -->[*] telnetd 错误1: Escape character is '^]'.Connection closed by foreign host. 在开发板服务端使用前台执 阅读全文
posted @ 2016-10-25 17:20 风而已 阅读(4617) 评论(0) 推荐(0) 编辑
摘要: 我想让我的程序运行在RAM中而不是在SPI FLASH上,写了一个scatterfile:ROM 0x00000000 0x00200000 ;spi flash{STARTUP +0 { startup.o(RESET, +First) ;*(+RO) }RO 0x20000... 阅读全文
posted @ 2014-12-25 15:35 风而已 阅读(1042) 评论(0) 推荐(0) 编辑
摘要: 当需要使用usb bulk传输,想让设备像串口通讯那样和PC主机通信, 通常需要自己做一个PC端的驱动,比较麻烦. 为避免在pc上编写usb设备驱动的麻烦,可以将设备做成mass storage 类的设备,使用通用的驱动. 在通讯之前设备端需要先做两件事: 1,实现mass storage... 阅读全文
posted @ 2014-08-19 15:31 风而已 阅读(2939) 评论(3) 推荐(0) 编辑
摘要: 在做一个显示bmp图片到lcd屏的时候,发现有些bmp图显示不对.同样是16bit bmp却有差异.就查了一下格式.bmp文件格式位图文件的组成结构名称符号位图文件头(bitmap-file header)BITMAPFILEHEADERbmfh位图信息头(bitmap-information header)BITMAPINFOHEADERbmih彩色表(color table)RGBQUADaColors[]图像数据阵列字节BYTEaBitmapBits[] 偏移量域的名称大小内容 图像文件头0000h标识符(Identifier)2 bytes两字节的内容用来识别位图的类型:‘BM’ .. 阅读全文
posted @ 2014-04-11 13:15 风而已 阅读(3590) 评论(0) 推荐(0) 编辑
摘要: mmc_sd_init_card剩下的关于UHS-I的分支结构。uhs-I的初始化流程图如图:红线标出的部分是已经做了的事,与上一篇那个流程图是一致的,之后就是if分支中做的事。if分支中的函数mmc_sd_init_uhs_card:/* * UHS-I specific initialization procedure */static int mmc_sd_init_uhs_card(struct mmc_card *card){ int err; u8 *status; if (!card->scr.sda_spec3)//sd卡3.0版本才加入的UHS-I ... 阅读全文
posted @ 2013-12-13 11:29 风而已 阅读(3723) 评论(0) 推荐(0) 编辑
摘要: 为了学习SD/SDIO协议,看了一下linux中初始化SD卡的流程,结合代码更容易SD初始化是怎么做的。下面图截自:"SD Specifications Part 1 Physical Layer Simplified Specification Version 4.10"SD卡在sd模式下的初始化流程图,sd协议还有spi模式暂不研究。这个流程图对应于linux 代码就在/driver/mmc/core/sd.cstatic int mmc_sd_init_card(struct mmc_host *host, u32 ocr, struct mmc_card *oldc 阅读全文
posted @ 2013-12-12 15:00 风而已 阅读(7299) 评论(0) 推荐(0) 编辑
摘要: linux内核中ffs(x)宏是平台相关的宏,在arm平台,该宏定义在arch/arm/include/asm/bitops.h#define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); })static inline int fls(int x){ int ret; if (__builtin_constant_p(x)) return constant_fls(x); asm("clz\t%0, %1" : "=r" (ret) : "r" (x) : " 阅读全文
posted @ 2013-11-29 15:40 风而已 阅读(5954) 评论(0) 推荐(1) 编辑
摘要: 通过移植学习linux新版本内核,大概了解一下内核变化。记录一下移植过程中遇到的问题或值得注意的地方。1,添加一款arm9芯片的支持首先修改\arch\arm\tools\mach-types文件添加一行w90p950evb MACH_W90P950EVB W90P950EVB同目录下的脚本文件在编译内核时会根据该文件生成\include\generated\mach-types.h其中会生成类似这样的定义:define MACH_TYPE_W90P950EVB 1923#ifdef CONFIG_MACH_W90P950EVB# ifdef machine_arch_... 阅读全文
posted @ 2013-11-12 11:20 风而已 阅读(867) 评论(0) 推荐(0) 编辑
摘要: windows上面对usb复合设备的识别需要下面条件。“如果设备满足下列要求,则总线驱动程序还会报告 USB\COMPOSITE 的兼容标识符:设备描述符的设备类字段 (bDeviceClass) 必须包含一个零值,或者设备描述符的类 (bDeviceClass)、子类 (bDeviceSubClass) 和协议 (bDeviceProtocol) 字段必须分别具有值 0xEF、0x02 和 0x01,如 USB 接口关联描述符中所述。设备必须具有多个接口。设备必须具有一个配置。“引用自:http://msdn.microsoft.com/zh-cn/library/ff537109下面是li 阅读全文
posted @ 2013-11-01 13:51 风而已 阅读(4097) 评论(0) 推荐(0) 编辑
摘要: 设备连上主机之后,设备驱动做了的事.设备连上host的port之后,主机端会有一套策略发送请求获取device的一系列描述符.进行枚举过程.找到适合该device的驱动. 这样就可以与device进行通信.usb device这边收到主机的请求,会进入中断处理函数.可以说usb device 控制器的活动都是从中断开始的.#号之间的都是udc驱动中做的事,大部分与硬件相关,原理应该差不多.########################nuc900_udc##########################nuc9xx系列的中断处理函数: 1 static irqreturn_t nuc900 阅读全文
posted @ 2013-10-25 14:03 风而已 阅读(1804) 评论(0) 推荐(0) 编辑