阅读:1567回复:5
请问关于用C51开发68013固件的问题
我用keil C51试着编写68013的固件。
按照这样的步骤: 在uVision中新建项目文件 把...\\CYPRESS\\USB\\Target\\Fw\\Fx2的相关文件拷贝到项目目录下。(不包括.hex和.Uv2) 修改periph.c文件,加入自己的代码。初始化了2个Endpoint。 接着就是build生成hex文件。 编译通过,没有提示什么错误,但用Control Panel下载hex文件后,根本不能设置68013,是不是我哪里做错了? 另外,build的时候似乎只是对项目窗口中选中的c文件编译嘛。 哪位大侠指点一下,谢谢! |
|
沙发#
发布于:2003-10-07 11:19
你的目的是想设置68013的VID、PID。这个设置要在dscr.a51文件中设置
DeviceDscr: db DSCR_DEVICE_LEN ;; Descriptor length db DSCR_DEVICE ;; Decriptor type dw 0002H ;; Specification Version (BCD) db 00H ;; Device class db 00H ;; Device sub-class db 00H ;; Device sub-sub-class db 64 ;; Maximum packet size dw 4705H ;; Vendor ID dw 0210H ;; Product ID (Sample Device) dw 0000H ;; Product version ID db 1 ;; Manufacturer string index db 2 ;; Product string index db 0 ;; Serial number string index db 1 ;; Number of configurations |
|
板凳#
发布于:2003-10-08 14:02
抱歉我没有说清楚。
我的问题不是处在vid和pid上。 我用Contral Panel下载自己编译的固件hex文件后。 根本不能读到设备描述符,更不用说其它的描述符了。 但是编译过程并没有提示出错,是不是在用C51建立项目的时候缺少了什么步骤? 谢谢! |
|
地板#
发布于:2003-10-08 14:19
我觉得可能你没有设置好bl51 locate中code的起始地址!
|
|
地下室#
发布于:2003-10-08 21:28
谢谢abei11,问题确实出在这里。
另外我想问一下,BL51 Locate中的 code range xdata range 在68013中,是不是必须设在8k的Main RAM中,也就是0x0000~0x1fff 的范围内? 而且是随意设置的吗? 谢谢! |
|
5楼#
发布于:2003-10-09 11:13
是可以随意设置的,不过一般情况下那个code range只要稍大于你的代码大小即可,一般情况下代码大小不会超过4k的,而剩余的部分你可以设置为xdata range,例如附件中的设置,前面预留的是给中断向量的存储空间。
|
|