#include "ctrl_set.h"
#include "console.h"
#include "utils.h"
#include "39vf160.h"
#include "DataType.h"
#include "44b0x.h"
#define DEF_START_ADDR 0x10000
#define DFT_DOWNLOAD_ADDR 0xc008000
#define MAX_CMD_LEN 128
#define MAX_ARGS MAX_CMD_LEN/4
extern void clearpicture();
extern void DelayNS(int dly);
extern void Blink(int row);
extern void TextDisplayInit(void);
extern void displaypicture(void);
extern void LCDIni(void);
extern U32 MCLK;
extern void LCD_BACK_LIGHT(int i);//i=0 on ,i=1 off
int IP_ADDRESS= 0xc0a80064;//=0x0a010799;
U32 SERIAL_BAUD = 57600;
U32 download_addr;
U32 program_begin;
char table_begin[] = "/***************************************************************/\n";
#define prompt() puts("\\>")
TIME_STRUC SysTime;
char *WeekDay[7] = {"SUN","MON", "TUES", "WED", "THURS","FRI", "SAT"};
/*********************************************************/
static void delay(U32 cnt)
{
while(cnt--);
}
static int getkey_con(void)
{
puts("Press any key to continue...\n");
return (getch()==0x1b);
}
int GetParameter(char *str, int cnt)
{
int i, key;
i = 0;
while(1)
{
if(kbhit())
{
key = getkey();
if(key==BACK_KEY)
i -= i?1:0;
else
if(key==ENTER_KEY)
{
str[i] = 0;
return i;
}
else
if(i<cnt)
{
putch(key);
str[i++] = key;
}
}
}
}
/*********************************************************/
int SysClock(int argc, char *argv[])
{
printf("System is running @%dHz\n", MCLK);
return 0;
}
int GetDate(int argc, char *argv[])
{
int i, error = 0;
char tmp[8];
char *str;
U32 year, month, day;
RtcGetTime(&SysTime);
printf("Current date is %d-%d-%d %s\n", SysTime.year, SysTime.month, SysTime.day, WeekDay[SysTime.weekday]);
if(argc<2)
return 0;
str = argv[1];
for(i=0; i<5; i++)
tmp[i] = str[i];
if(tmp[4]!='-')
error = 1;
year = strtodec(str, 4);
if(year<2000||error)
{
puts("year error!\n");
return 0;
}
str += 5;
i = 0;
if(str[++i]!='-')
if(str[++i]!='-')
error = 1;
str[i] = 0;
month = strtobcd(str);
if((month-1)>0x11||error)
{
puts("month error!\n");
return 0;
}
str += i+1;
i = 0;
if(str[++i]!=0)
if(str[++i]!=0)
error = 1;
str[i] = 0;
day = strtobcd(str);
if((day-1)>0x30||error)
{
puts("day error!\n");
return 0;
}
SysTime.year = year-2000;
SysTime.month = month;
SysTime.day = day;
RtcSetDay(&SysTime);
printf("Set date %d-%x-%x %s\n", year, month, day, WeekDay[SysTime.weekday]);
return 1;
}
int SetWeek(int argc, char *argv[])
{
U32 i;
int error = 0;
if(argc<2)
error = 1;
i = strtodec(argv[1], 1);
if((i-1)>5)
error = 1;
if(!error)
{
SysTime.weekday = i;
RtcSetWeek(&SysTime);
printf("Set to %s\n", WeekDay[i]);
}
else
{
puts("Please enter weekday\n");
puts("0 : Sunday\n");
puts("1 : Monday\n");
puts("2 : Tuesday\n");
puts("3 : Wednesday\n");
puts("4 : Thursday\n");
puts("5 : Friday\n");
puts("6 : Satday\n");
}
return 0;
}
int GetTime(int argc, char *argv[])
{
int i, error = 0;
char *str;
U32 hour, min, sec;
RtcGetTime(&SysTime);
printf("Current time is %x:%x:%x\n", SysTime.hour, SysTime.min, SysTime.sec);
if(argc>1)
{
str = argv[1];
i = 0;
if(str[++i]!=':')
if(str[++i]!=':')
error = 1;
str[i] = 0;
hour = strtobcd(str);
if(hour>0x23||error)
{
puts("hour error!\n");
return error;
}
str += i+1;
i = 0;
if(str[++i]!=':')
if(str[++i]!=':')
error = 1;
str[i] = 0;
min = strtobcd(str);
if(min>0x59||error)
{
puts("minute error!\n");
return error;
}
str += i+1;
i = 0;
if(str[++i]!=0)
if(str[++i]!=0)
error = 1;
str[i] = 0;
sec = strtobcd(str);
if(sec>0x59||error)
{
puts("second error!\n");
return error;
}
SysTime.hour = hour;
SysTime.min = min;
SysTime.sec = sec;
RtcSetTime(&SysTime);
printf("Set time %x:%x:%x\n", hour, min, sec);
}
return error;
}
/*********************************************************/
int ChgSysMclk(int argc, char *argv[])
{
int i, mdiv, pdiv, sdiv;
char tmp[4];
puts("This function is for adjust system running clock!!!\n");
printf("Current clock is %dHz\n", MCLK);
puts("Please enter the PLL parameter to use, mdiv[0-255], pdiv[0-63], sdiv[0-3]\n");
puts("mdiv: ");
if((mdiv=strtodec(tmp, GetParameter(tmp, 3)))<0)
{
puts("\nget mdiv Error!\n");
return 0;
}
puts("\npdiv: ");
if((pdiv=strtodec(tmp, GetParameter(tmp, 3)))<0)
{
puts("\nget pdiv Error!\n");
return 0;
}
puts("\nsdiv: ");
if((sdiv=strtodec(tmp, GetParameter(tmp, 3)))<0)
{
puts("\nget sdiv Error!\n");
return 0;
}
printf("\nYou set System clock mdiv = %d, pdiv = %d, sdiv = %d\n", mdiv, pdiv, sdiv);
i = 8000;
while(i--);
ChangePllValue(mdiv, pdiv, sdiv);
i = 8000;
while(i--);
console_init(SERIAL_BAUD);
printf("Current clock is %dHz\n", MCLK);
return 0;
}
int ChgBaudRate(int argc, char *argv[])
{
int i;
U32 BaudSet [6] = {4800, 9600, 19200, 38400, 57600, 115200};
for(i=0; i<6; i++)
printf("%d : %d\n", i, BaudSet[i]);
puts("Please enter choice : ");
while(1)
{
int ch = getch();
if(ch<='6'||ch>='0')
{
SERIAL_BAUD = BaudSet[ch-'0'];
printf("Baud rate set to : %d\nPress any key to continue\n", SERIAL_BAUD);
i = 0x4000;
while(i--); //wait transmit end
console_init(SERIAL_BAUD);
getch();
break;
}
}
return 0;
}
/*********************************************************/
int tftp_main(unsigned long ip, unsigned long addr, int method);
int LoadFile2Mem(int argc, char *argv[])
{
if(argc<2)
{
download_addr = DFT_DOWNLOAD_ADDR;
printf("No begin address for download, use default address 0x%x\n", download_addr);
}
else
download_addr = strtoul(argv[1]);
tftp_main(IP_ADDRESS, download_addr, 0);
return 0;
}
int ProgFlash(int argc, char *argv[])
{
unsigned int size = ~0;
unsigned int data_begin = ~0;
unsigned int prog_begin = ~0;
int overwrite0 = 1;
int modify_a0 = 0;
unsigned int bios_load_addr;
if(argc<4)
{
puts("Arguments error!\n");
puts("Usage: prog a1 a2 size [-no0]\na1 = program begin address\na2 = data pointer to ram\nsize = program size(Bytes)\n-no0 = don't overwrite address 0\n");
return -1;
}
prog_begin = strtoul(argv[1]);
data_begin = strtoul(argv[2]);
size = strtoul(argv[3]);
if(size==0)
{
puts("Write 0 Bytes!\n");
return -1;
}
if(prog_begin==-1||data_begin==-1) //
{
puts("Arguments error\n");
return -1;
}
printf("program flash begin @0x%x",prog_begin);
printf(" from ram data @0x%x",data_begin);
printf( " size = %dBytes\nAre you sure? [y/n]", size);
while(1)
{
if(kbhit())
{
int key = getkey();
if(key=='y'||key=='Y')
{
putch(key);
next_line();
FlashProg(prog_begin, (U16 *)&data_begin, size);
break;
}
if(key=='n'||key=='N')
{
putch(key);
next_line();
return 0;
}
}
}
#define __ROM_SIZE 0x200000
#define BIOS_BASE (__ROM_SIZE-0x10000)
#define BIOS_LOAD (__ROM_SIZE-4)
if(argc>4)
if(strncmp(argv[4], "-no0", 4)==0)
overwrite0 = 0;
if((prog_begin==0)&&overwrite0)
{
unsigned int ins;
ins = *(unsigned int *)data_begin;
if((ins>>24)==0xea) // instruction: b xxxx, now just support b instruction!!!
bios_load_addr = ((ins&0xffffff)<<2)+8;
else
bios_load_addr = 4; // other instruction, jump to 4
bios_load_addr = (bios_load_addr-BIOS_LOAD-8)/4;
没有合适的资源?快使用搜索试试~ 我知道了~
bios44b0基于44b0
共89个文件
o:24个
h:23个
c:16个
3星 · 超过75%的资源 需积分: 9 8 下载量 64 浏览量
2011-02-24
00:28:19
上传
评论
收藏 307KB RAR 举报
温馨提示
44b0的BIOS,ADS编辑的。对于初学ARM7TDMI的学习很有帮助。
资源推荐
资源详情
资源评论
收起资源包目录
bios44b0.rar (89个子文件)
bios44b0
skbuff.c 970B
boot.s 261B
arp.c 3KB
fs_bios44b0_Data
boot
ObjectCode
Option.o 1022B
LCDDISP.o 26KB
boot.o 657B
MemCfg.o 2KB
fs_bios44b0.axf 3KB
TargetDataWindows.tdt 59KB
fs_bios44b0.bin 60B
CWSettingsWindows.stg 3KB
DebugRel
ObjectCode
ctrl_set.o 20KB
skbuff.o 10KB
Option.o 1KB
tftpput.o 10KB
icmp.o 12KB
ip.o 17KB
udp.o 13KB
LCDDISP.o 27KB
vector.o 3KB
39vf160.o 12KB
arp.o 15KB
eth.o 10KB
utils.o 9KB
MemCfg.o 2KB
console.o 24KB
mac.o 16KB
main.o 53KB
tftpmain.o 17KB
SysInit.o 5KB
tftp.o 15KB
fs_bios44b0.axf 151KB
TargetDataWindows.tdt 101KB
fs_bios44b0.bin 34KB
ip.c 2KB
main.c 19KB
inc
config.h 362B
tftpput.h 161B
skbuff.h 688B
Rtl8019.h 2KB
DEF.H 277B
44BLIB.H 1KB
44B0X.H 15KB
Option.s 601B
Option.h 855B
MemCfg.s 3KB
mac.h 252B
ip.h 698B
icmp.h 231B
tftp.h 1KB
44B.H 15KB
utils.h 549B
eth.h 2KB
ctrl_set.h 526B
udp.h 528B
DataType.h 980B
bios.h 7KB
console.h 275B
arp.h 4KB
39vf160.h 519B
tftp.c 2KB
session.ses 3KB
tftpmain.c 2KB
mac.c 9KB
picturemap.h 5KB
source insight pro
44B0-bootloader.IAD 1KB
44B0-bootloader.IMB 36KB
44B0-bootloader.WK3 19KB
44B0-B~1.SearchResults 235B
44B0-bootloader.PR 13KB
44B0-bootloader.SearchResults 253B
44B0-bootloader.PS 260KB
44B0-bootloader.PRI 82KB
44B0-bootloader.PFI 164B
44B0-bootloader.IMD 688B
44B0-bootloader.PO 776B
44B0-bootloader.IAB 72KB
vector.s 4KB
39VF160.C 3KB
udp.c 1KB
tftpput.c 2KB
utils.c 2KB
fs_bios44b0.mcp 139KB
console.c 3KB
eth.c 862B
ctrl_set.c 6KB
icmp.c 1KB
LCDDISP.c 7KB
SysInit.s 9KB
共 89 条
- 1
资源评论
- vans882014-03-0544B0的开发包含有最基本的初始化程序和网卡驱动程序
jianglong000000
- 粉丝: 3
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功