CompactFlash Card on MPC8241 using at 8-bits True IDE mode

由于我们公司的一款MPC8241板子存在以下问题 64M DOC空间不够 128M DOC不稳定,文件系统经常损坏 所以我们做了一个DOC转CF的转接卡,由于DOC是8-bits宽度,所以CF卡也只能用8-bits方式。 在CF卡复位后应该使用命令使CF卡工作在8-bits模式,并且不能使用DMA方式。 PS: 这个简单的东西调了整整2天,faint。原因就是第一次调试CF卡的时候写了一个简单的probe程序,当时使用的是16-bits宽度。定义基地址类型的时候使用的是volatile unsigned short *,这次调试的时候没有想起来,结果每次地址加1实际上都是地址加2。导致CF每次读都是在PowerDown模式,把我引进了一个错误的方向。 而对自己的驱动太放心,只是测量了D0是不是正确的,没有测量A0。2天时间都在怀疑时序是不是有问题。 昨天晚上11点终于忍不住量了以下A0,结果发现A0没有变化,A1上出现了波形,最终成功probe到了CF卡。 PS PS: 调试的时候千万不要有侥幸,自己写的代码要考虑清楚,硬件信号该量就要量,不要怕费事麻烦。

USB Class CCID

名词解释 CCID: Integrated Circuit(s) Cards Interface Device ICC: Integrated Circuit(s) Cards 概述 当一个CCID插入USB host时,它可以有或者没有一个插入的ICC。 CCID模型假设一个ICC被或者可以被插入到设备。这就是"slot change"中断消息的目的。 CCID功能特性 通信管道 控制管道 控制管道消息用来控制一个USB设备。这些消息包括标准请求,例如GET_DESCRIPTOR和SET_CONFIGURATION。命令经由默认管道发送,报告信息也经由默认管道返回给主机。如果产生了一个错误,它会产生一个标准的USB错误状态。 中断管道 CCID模型在中断管道处理异步事件。ICC在线,ICC移除或者硬件错误比如电流太大,这些经由这个管道送出。 中断管道对于一个支持ICC插入/移除的CCID是强制的。对于一个只插入没有移除的ICC是可选的。 块进,块出管道 CCID命令经由BULK-OUT端点发出。每个发送给CCID的命令都有一个相应的响应。一些命令也有过程响应。这些响应从BULK-IN端点发送。 所有发送给指定CCID槽位的命令都必须同步发送。一个指定的槽位同时只能接受一条命令。如果一个槽位准备好接受一个新命令那么就认为它是空闲的。 协议和参数选择 CCID在与主机的底层交互的dwFeatures字段声明TPDU、APDU(短或扩展)或者字符。 TPDU层交互 对于PPS交互的TPDU格式如下:…

Cryptographic Service Providers(CSP)介绍

一个密码服务提供商(CSP)包括密码标准的实现和算法。最小情况下,一个CSP由一个实现了CryptoSPI(a system program interface)函数的动态链接库(DLL)组成。大多数的CSPs包含所有它们自己函数的实现。然而,一些CSPs,主要实现了由Windows服务控制管理者(Windows service control manager)管理的主要的基于Windows的服务程序。其他的用硬件来实现函数,比如一个智能卡(smard card)或者加密协处理器。如果一个CSP没有实现它自己的函数,DLL作为一个透传层,便利了操作系统和实际CSP实现的交流。   CSP体系结构 CSP概述 应用程序并不直接和CSP通信。相反,应用程序调用由操作系统的Advapi32.dll和Crypt32.dll文件提供的CryptoAPI函数。操作系统通过CryptoSPI(a system program interface)将过滤这些函数调用并把它们传递给合适的CSP函数。 一个CSP作者必须了解操作系统传递给CSP函数的参数的性质、规则和意义并且必须返回操作系统预期的值。 应用程序使用handles引用CSP内的数据对象。这些handles引用的对象包含key container、hash objects、session key和public/private key pair objects。这些handles使两边不透明,意思是,应用程序使用handle访问的数据对象并不是CSP使用的那个。因为各种各样的原因,操作系统层经常间接使用handles访问数据对象。 入口函数 所有自定义的CSPs必须支持以下DLL入口函数: CPAcquireContext CPCreateHash CPDecrypt CPDeriveKey CPDestroyHash…

Debian开启Apache rewrite MOD

使能Apache加载rewrite MOD [crayon-6844b938a14fc375116619/] 如果有rewrite.load则表明模块已经加载,如果没有的话可以用一下2中方式使能 [crayon-6844b938a1501701545919/] [crayon-6844b938a1503131812522/] 使能Apache Override 编辑/etc/apache2/sites-available/default文件 找到 [crayon-6844b938a1504805051826/] 改为 [crayon-6844b938a1505888482510/] 重新加载Apache配置 [crayon-6844b938a1506240098588/] 参考资料 http://tymonn.wordpress.com/2009/07/31/how-to-enable-mod_rewrite-in-apache2-debianubuntu/

下一阶段学习目标

USB 现在大多数设备都需要USB接口,搞好这个肯定吃香 LD Script 做嵌入式如果连这个都搞不定就悲剧了。进一步就是bootloader。。。。

GSM命令详解

配置命令 名字 功能 AT&F 设置所有参数为工厂默认 AT&V 显示当前配置 AT&W 保存当前配置到用户profile AT+CMEE 移动设备错误信息格式 0 - 禁止错误代码,仅显示"ERROR" 1 - 显示数字错误代码 2 - 显示字符串错误代码 串行接口控制命令 名字 功能 AT\Q[<value>] 流控控制 0 - 无流控 1 –…

GNU链接脚本分析

08年搞了一个可以在linux下使用GNU GCC编译的NXP工程,学到了不少东西。从linux kernel、u-boot借鉴了不少东西,下面对链接文件做一个简单分析。 名词解释 The Location Count(.) - 地址计数器 Load Memory Address(LMA) - 加载内存地址 Virtual Memory Address(VMA) - 虚拟内存地址 section contents - 段内容 Input Section - 输入段 Output Section -…

iptables

玩了5年的linux,没有给服务器加上防火墙,今天google了一下,整了个东西出来 首先看当前的配置,执行下面命令: [crayon-6844b938a19e2652804730/] 输出信息类似于: [crayon-6844b938a19e4006010788/] 这表明任何人可以从任何地方访问。 保存iptables规则到文件 建立一个测试iptables文件 [crayon-6844b938a19e5934592337/] 在这个文件写入一下简单的规则 [crayon-6844b938a19e6331455799/] 这个看起来有点复杂,但是每次看一节,你会发现除了我们允许的端口,其他所有端口都被关闭了。 启用这些新的规则 [crayon-6844b938a19e7581710485/] 在看看不同 [crayon-6844b938a19e9013963954/] 你也可以保存这些规则到文件 确保在重启后这些iptables规则生效,建立新文件 [crayon-6844b938a19ea563764177/] 增加如下内容 [crayon-6844b938a19eb639136739/] 这个文件需要可执行 [crayon-6844b938a19ec803612978/] 参考 http://wiki.debian.org/iptables http://www.howtoforge.com/linux_iptables_sarge

什么是LAMP

即Linux、Apache、MySQL和PHP的头文字的缩写。 这些开源软件一起实用可以提供一个WEB服务平台。