資源簡介
這是完整的USB項目。包含用keil寫的C底層驅動 包含用C++寫的上位機軟件,能夠完美實現USBbootloadr

代碼片段和文件信息
/*
================================================================================
File?Name?:?main.c
Author????:?LiYong
Date??????:?2008-12-9?12:30
Version???:?1.0
Description?:?This?file?contains?the?main?entry?and?some?harware?operations?
Note??????:?This?Firmware?used?the?flash?space?0x2800-0x3FFF
================================================================================
*/
#define?_MAIN_C_
#include?“mytypedef.h“
#include?“usb.H“
#include?“F32x_USB_Register.h“
#define OFF_MSG_START 0//1byte;0x27
#define OFF_MSG_PAGE0 ????1//1byte
#define OFF_MSG_LENGTH 2//1byte
#define OFF_MSG_ATTR 3//1byte;0x14
#define OFF_MSG_DATA 4//26byte4-29
#define OFF_MSG_COMMAND 4//1byte
#define OFF_MSG_PAGE 5//1byte
#define OFF_MSG_PACKNUM 6//1byte
#define OFF_CONTENT 7// content?of?a?file;7-29;23byte
#define OFF_CHECKSUM_H 30//1byte
#define OFF_CHECKSUM_L 31
#define REAL_DATA_LENTH 23
#define?ERROR_CS????????0xE0
#define?ERROR_PACKET_MISS???0xE1
#define?ERROR_PAGE_MISS?0xE3
#define?DATA_OK?????????0xA5
#define?PAGE_SIZE???????512
#define?APP_Marker_Addr?0x2800?//Put?the?APP?marker?at?0x2800
#define?BLR_Start_Addr??0x2A00?//Put?the?bootloader?start?at?0x2C00
struct??
{
????INT8U???Last;
????INT8U???Current;
}Page;
struct
{
????INT8U???Last;
????INT8U???Current;
}Packet;
INT8U?USB_InBuff[EP1_PACKET_SIZE];
INT8U?USB_OutBuff[EP2_PACKET_SIZE];
/*Initialize?the?system?and?USB?clock*/
void?Clock_Init(?void?);?
/*Handle?the?bootloader?data*/
INT8U?BootloaderHandler(?void?);
/*
================================================================================
Function?name?:?Clock_Init(?)
Description???:?Initialize?the?system?and?USB?clock
Input?????????:?None
Output????????:?None
================================================================================
*/
void?Clock_Init(?void?)
{
INT8U?i;
if(?(?CLKMUL?&?(?1<<5?)?)?)?return;
CLKMUL?=?0;
CLKMUL?|=?(?1<<7?);
for(?i?=?0;?i?250;?i?++?);
CLKMUL?|=?0xC0;
for(?i?=?0;?i?250;?i?++?);
while(?!(?CLKMUL?&?(?1<<5?)?)?);
CLKSEL?=?(?2<<0?);
}
/*
================================================================================
Function?name?:?BootloaderHandler(?)
Description???:?Handle?the?bootloader?data
Input?????????:?None
Output????????:?None
================================================================================
*/
static??INT16U??ByteAddr?=?0;
static??INT8U???xdata?*PagePointer?=?0;?
static??INT8U???APPStartVect[3];
INT8U?BootloaderHandler(?void?)
{
INT8U???data?i;
????Page.Current?=?USB_OutBuff[OFF_MSG_PAGE];
????Packet.Current?=?USB_OutBuff[OFF_MSG_PACKNUM];
????
????if(?Packet.Current?==?0?)
????{
????????PagePointer?=?0;
????????for(?i?=?0;?i?????????{
????????????PagePointer?+=?PAGE_SIZE;
????????}
????????ByteAddr?=?0;
????????//erase?the?current?page
????????FLSCL?=?0x90;
????????EA?=?0;
????????PSCTL?=?0x03;
????????FLKEY?=?0xA5;
??????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????91545??2005-09-22?10:18??USB?完整bootloader?例程\USB?Bootloader\APPs\C51L.LIB
?????文件??????16194??2006-10-24?08:09??USB?完整bootloader?例程\USB?Bootloader\APPs\c8051F320.h
?????文件???????6817??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\APPs\main.c
?????文件???????7304??2009-03-30?15:34??USB?完整bootloader?例程\USB?Bootloader\APPs\main.c.bak
?????文件???????1753??2009-03-13?11:01??USB?完整bootloader?例程\USB?Bootloader\APPs\MyTypeDef.h
?????文件???????5253??2008-04-20?21:54??USB?完整bootloader?例程\USB?Bootloader\APPs\STARTUP.A51
?????文件?????176128??2009-04-03?09:48??USB?完整bootloader?例程\USB?Bootloader\F320_USBbootLoader.exe
?????文件?????176128??2009-04-03?09:48??USB?完整bootloader?例程\USB?Bootloader\F320_USBLoader.exe
?????文件???????2422??2018-03-21?08:43??USB?完整bootloader?例程\USB?Bootloader\Project\F320Bootloader.Opt
?????文件????????280??2009-03-30?13:23??USB?完整bootloader?例程\USB?Bootloader\Project\F320Bootloader.plg
?????文件???????2628??2009-09-04?18:26??USB?完整bootloader?例程\USB?Bootloader\Project\F320Bootloader.Uv2
?????文件???????2421??2018-03-19?16:39??USB?完整bootloader?例程\USB?Bootloader\Project\F320Bootloader_Opt.Bak
?????文件???????2628??2009-08-25?00:35??USB?完整bootloader?例程\USB?Bootloader\Project\F320Bootloader_Uv2.Bak
?????文件??????50350??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\Project\List\F320Bootloader.m51
?????文件??????84327??2009-03-30?15:05??USB?完整bootloader?例程\USB?Bootloader\Project\List\main.ls1
?????文件??????13582??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\Project\List\main.lst
?????文件??????12134??2009-07-05?19:27??USB?完整bootloader?例程\USB?Bootloader\Project\List\STARTUP.lst
?????文件??????63134??2009-07-05?19:27??USB?完整bootloader?例程\USB?Bootloader\Project\List\USB.lst
?????文件??????11664??2009-07-05?19:27??USB?完整bootloader?例程\USB?Bootloader\Project\List\USB_HID_Desc
?????文件?????????19??2009-09-04?18:19??USB?完整bootloader?例程\USB?Bootloader\Project\Output\ExtDll.iex
?????文件??????80726??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\Project\Output\F320Bootloader
?????文件??????11715??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\Project\Output\F320Bootloader.hex
?????文件????????231??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\Project\Output\F320Bootloader.lnp
?????文件????????416??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\Project\Output\F320Bootloader.plg
?????文件??????22831??2010-04-22?16:37??USB?完整bootloader?例程\USB?Bootloader\Project\Output\main.obj
?????文件??????23355??2009-03-30?15:05??USB?完整bootloader?例程\USB?Bootloader\Project\Output\main.SRC
?????文件????????869??2009-07-05?19:27??USB?完整bootloader?例程\USB?Bootloader\Project\Output\STARTUP.obj
?????文件??????52148??2009-07-05?19:27??USB?完整bootloader?例程\USB?Bootloader\Project\Output\USB.obj
?????文件??????11566??2009-07-05?19:27??USB?完整bootloader?例程\USB?Bootloader\Project\Output\USB_HID_Desc
?????文件???????5388??2009-03-11?14:46??USB?完整bootloader?例程\USB?Bootloader\USB_C8051F\F32x_USB_Register.h
............此處省略77個文件信息
- 上一篇:MFC編程85經典
- 下一篇:VC6.0_MFC畫圖demo小程序源碼
評論
共有 條評論