Cypress 固件架构彻底解析及 USB 枚举
1. RAM 的区别
56pin 或者 100pin 的 cy7c68013A,只有内部 RAM,不支持外部 RAM
128pin 的 cy7c68013A 在 pin 脚 EA=0 时为内部 RAM,pin 脚 EA=1 时,为外部 RAM
2. USB 描述符
DESR.A51 中放的是 USB 描述符表,包括:
1、设备描述符
2、设备限定描述符、
3、配置描述符
4、接口描述符
5、端点描述符
6、字符串描述符
3. FW.C 文件的解析
1、TD_init() 初始化自己的配置
2、判断设备描述符位于内部 RAM 区还是外部 RAM 区,如果位于外部 RAM 区,则移到内部 RAM 区中去
3、初始状态设置
4、进入主循环 while(TRUE)
*****************************************************************
5、if(GotSUD) 等待 SETUP 令牌数据的到来,令牌数据到来时,在中断中将 GotSUD 置位,中断函数为 ISR_Sudav(void),GotSUD 为令牌包标志
6、SetupCommand(), 处理 SETUP 的事务全在里面,用户可以自定义
7、GotSUD = FALSE 处理完后清零 Setup 标志
*************