|
|
|
|
|
常见的问题
|
|
硬件相关的问题:
|
|
1.AMAZON CPU的PLL频率在哪里设置?
|
|
答:在crt0.s汇编语言文件中
|
|
|
|
2.有时PDF文件中有错误字符,无法阅读?
|
答:有2种情况,1.有韩语字符的需要下载 ACROBAT reader
亚洲语言包。
2.有中文字符的需要用ACROBAT reader 中文版来读
现在的ACROBAT reader可以在线自动升级。
|
|
|
|
3.AMAZON芯片需要接几片SDRAM?
|
答:AMAZON 至少接3片SDRAM,1片或2片主内存(16位或32位,最大16MBYTE)(时钟40MHZ左右),1片TEXTURE,1片FRAME(2者总和最大16MBYTE)。TEXTURE和FRAME可以采用16位16MBIT的SDRAM,板上为2片16位64MBIT(要用三星的)。
TEXTURE和FRAME公用1个时钟(80MHZ左右),有各自的数据地址总线,来保证声音和图象的实时操作。时钟线在PCB中布置成T状。
|
|
|
|
4.AMAZON的程序放在哪里?
|
答:程序可以放在任何地方ROM/SDRAM/FLASH(地址从0到高,分别占据ROM(EPROM)、RAM(SDRAM)、扩展ROM区(FLASH卡,扩展ROM区和外设区配合使用将FLASH卡扩展到96M),但为了运行速度快,一般将程序COPY到SDRAM中运行。
可以将用户程序放在FLASH中(占扩展ROM区),ROM(从0地址开始)只放初始化和管理程序(负责COPY),这是板上的方式。
板上的ROM被设成8位,可以改设为16/32位,以加快运行速度。但是ROM区不能自己在线修改(没有写信号)。
|
|
|
|
5.AMAZON的PIO口怎样使用?
|
答:AMAZON的IO口由3个寄存器控制,分别是方向(0x1802000)、数据输出(0x1802004)、输入寄存器(0x1802008)。
*(unsigned short*)(0x1802000) = *(unsigned short*)(0x1802000)|(0x1);
//表示把PIO-0设置成输入模式
j= *(unsigned short*)(0x1802008);//读PIO-0口的电瓶
|
|
|
|
6. AMAZON支持CF卡吗?
|
|
可以支持,我们专门设计了CF卡的SDK程序,支持FAT16格式,程序和图片数据都放在CF卡中,开机可以自动运行,不过该设计是以收费形式提供,有需要和我联系:13701100643
曾煜
|
|
|
|
7.AMAZON的中断怎样使用?
|
答:首先设置中断向量表,在程序中的这部分:
#define NOTUSEDISR (fp)(0)
const fp HardwareVector[] __attribute__((section (".vects")))= {
start , /* V00 : Reset Vector */
NOTUSEDISR, /* V01 : NMI Vector */
NOTUSEDISR, /* V02 : Interrupt Auto Vector */
......
NOTUSEDISR , // V20 : User 00 Vector V20 : TIMER0
TIMER1, // TIMER1 , // V21 : User 01 Vector V21 : TIMER1
NOTUSEDISR
......
这部分程序可以放在任何C文件中。
没有使用的中断用NOTUSEDISR填充位置,使用的中断就写上中断服务程序的名字如:TIMER1
然后在某个C文件中写中断服务程序:TIMER1();
//#pragma interrupt
void TIMER1()
{
......
regb[0x0c04]=1;
}
注意在服务程序结尾一定要写中断标志位清除寄存器0x1800c04,
本程序中regb[0x0c04]=1; 表示清除TIMER1的中断标志,来开放下次中断。
|
|
|
|
8.AMAZON的串口怎样使用?
|
答:AMAZON的串口可以使用CPU的晶振、也可以使用专门的外部晶振。
这样做是因为CPU的晶振在内部被PLL调制的比较高,不容易找到准确的拨特率如38400、115200等。在两个串口的控制寄存器中(0x1801000或0x1801020),BIT4可以选择内部CPU晶振或者外部晶振。
拨特率 = 晶振频率/((16*(分频值+1))
|
|
|
|
9.定时器怎样使用
|
定时器对CPU的内部晶振(一般为40MHz),先做8位的预分频,然后再做16位的定时。然后产生中断。注意定时器不能做计数器使用。
定时周期 = CPU内部晶振周期 * 8位的预分频值
* (16位的定时值+1)
|
|
|
|
10.外中断怎样使用?
|
AMAZON有8个外部中断,可以在外中断控制积存器(0x1800c00)中设置:高、低电平、和上跳沿、下跳沿触发。
注意外中断没有去抖动功能,应该在外电路中加上。
|
|
|
|
11. AMAZON复位后IO口输出状态是什么?
|
|
答:输出为0,但是在复位过程中是中间电平。设计时要注意。
|
|
|
|
|
|
|
|
软件相关的问题
|
|
1.AMAZON开发软件可以在WIN98上运行吗?
|
|
答:不行,需要在WIN2000或XP上运行。(目前最好的系统是WIN2000)
|
|
|
|
2.cygwin软件在哪里使用了?
|
|
答:cygwin是后台软件,被EISC-STUDIO软件调用
|
|
|
|
3.用户程序包括那些内容?
|
答:至少包括3个文件:
se3208.vct:连接文件,确定ROM,RAM,堆栈的地址。
crt0.s:汇编语言文件,设置CPU的频率,和初始化。
*.C文件:包含main()函数。
有的程序还要连接LIBVDSDK.A库
|
|
|
|
4.用户程序拷贝到SDRAM中后怎样运行?
|
答:如果程序的 start address(not vector-table but _start of "crt0.s")是
0x2010140,
一般用缺省的编译方式编译的可下载仿真程序都是这样的。
在拷贝程序的最后加上:
ldi 0x2010140, %r4
push %r4
pop %PC
就可以跳转到用户程序运行。
|
|
|
|
5.动画是怎样实现的?
|
答:动画效果用双BUFFER不断切换实现,见DoubleBuffering目录的循环程序。图象手册中有介绍。
while(i)
{
//put background 贴一张大图
Write_Packet_com(0x4708,0,0,360,240,0,0,256,0,0,1024,0,0x40000,0x00a4);
//put rotation pic 再贴一张小的
Write_Packet_com(0x670c,10,10,138,138,0,0,362,-362,362,362,0x00ff00,0x40000,0x00a4);
//moving object to new position 再贴一张小的
Write_Packet_com(0x4708,x,y,(x+128),(y+128*0.9),0,0,512,0,0,(512*1.1),0,0x48000,0x00a4);
Flip(); //切换,这时才显示,不断循环形成动画。
if((x>=232)&&(n= 3)) n=-3; //bounce back
else if((x<=10)&&(n=-3)) n= 3;
if((y>=125)&&(m= 3)) m=-3;
else if((y<=10)&&(m=-3)) m= 3;
x =x+n;
y =y+m;
i--;
}
即通过:
--在后缓冲区贴图1、图2、图3 --- FLIP ---
在后缓冲区贴图1、图2、图3 --- FLIP ---
不断循环来实现运动的。
|
|
|
|
6. 变量是多少位的?
|
int =32 bit
long = 32bit
double = 64bit
float =32bit
|
|
|
|
7.VGSDK库中有VGA640*480的分辨率设置吗?
|
答:暂时没有,可以自己加上:使用25.175MHz晶振
CPUWrite32(0x01803400, 0x00); //640*480@25.175
CPUWrite32(0x01803404, 0x91);//ivclk=50.35Mhz, dclk=ivclk/2=12.5875Mhz, cbclk=25.175Mhz
CPUWrite32(0x01803408, 0x2d60);//HB=dclk*1.78uSec, HW=dclk*3.81uSec
CPUWrite32(0x0180340c, 640);//horizontal display total register=25.67uSec*dclk
CPUWrite32(0x01803410, 0x0D);//horizontal sync front porch register=0.516*dclk
CPUWrite32(0x01803414, 0x2609);
CPUWrite32(0x01803418, 0x1e);//vertical sync back porch register
CPUWrite32(0x0180341c, 484);
CPUWrite32(0x01803420, ((0x01<<10)|399));
CPUWrite32(0x01803424, ((0x01<<11)|1031));
CPUWrite32(0x01803428, 0x32);
CPUWrite32(0x0180342c, 0);
CPUWrite32(0x01803430, 0x4001);
_vgScreen_width = 640;
_vgScreen_height = 480;
vgSetClipWindow( 0, 0, _vgScreen_width,_vgScreen_height );
|
|
|
|
8. VGSDK能用指针调用图片吗?
|
答:可以使用
LoadSurfaceInfoFromBMP_p(图片数组,&psurfback0,图片长度);
例子见光盘中vgatest
,VGA使用25.175M晶振,或邮件免费提供
|
|
|
|
9.电视和RGB显示器可以有512*240的分辨率吗?
|
|
答:可以。设置例子见光盘中的rgb512x240
使用28.636M晶振,或邮件免费提供
|
|
|
|
10.使用韩国VGSDK库对图片有要求吗?
|
答:BMP图片的宽度/高度是8的倍数。BMP可以是24/8/4位的。
图片支持BMP格式,SRF、GIF、PCX格式,声音可以是单声道WAV格式、S3M格式,S3M格式的声音多用于游戏类似MIDI,见WWW.S3M.COM
|
|
|
|
11.使用28.636MHz晶振,能设置成VGA模式吗?
|
答:可以,设置如下:
void SET640x480(void)
{
vgClearScreen(255,255,255);
vgFlip();
// CRT Controller 25.175MHz Setting.
// Display Start Address Reg.
// 25.175MHz Setting.
// Mode Reg.
CPUWrite32(0x01803400, 0x00);
// Timing Control Reg.
CPUWrite32(0x01803404, 0x91);
// Horizontal Back Porch & Sync Width.
// 45 Dot & 96 Dot.
CPUWrite32(0x01803408, 0x2c5f);
// Horizontal Display Total Reg.
CPUWrite32(0x0180340c, 650);
// Horizontal Sync Front Forch Reg.
// 19 Dot.
//CPUWrite32(0x01803410, 0x12);
// Vertical Display Total Reg.
CPUWrite32(0x0180341c, 479);
// Horizontal Total Reg.
CPUWrite32(0x01803420, ((0x01<<10)|(800/2-1)));
// Vertical Total Reg.
CPUWrite32(0x01803424, ((0x01<<11)|((525-9)*2-1)));
// Horizontal Line Back Forch Reg.
// Horizontal Adjustment.
// @ This Mode, This val must be < 60.
CPUWrite32(0x01803428, 0x37 );
// Vertical Sync Back Forch Reg.
// Vertical Adjustment.
CPUWrite32(0x01803418, 30);
// Display Start Address Reg.
CPUWrite32(0x0180342c, 0);
CPUWrite32(0x01803430, 0x4001);
_vgScreen_width = 640;
_vgScreen_height = 480;
vgSetClipWindow( 0, 0, _vgScreen_width,_vgScreen_height );
}
|
|
|
|
12.使用SDK最简单的调一张图需要做什么?
|
答:程序很简单
vgLoadImageFile(&psurfback0, "/gif/tank1.gif");
vgSetDrawMode( DGDRAWMODE_TEXTURE );
vgSetTexture( psurfback0 );
vgDrawTexture( 0, 0, 640,480, 0,0,0);
vgFlip();
|
|
13.为什么在PHOTOSHOP中做的带有透明色的图在AMAZON中透明色无效。
|
|
答:AMAZON的功能没有PHOTOSHOP复杂,而更象是WINDOWS画笔。最好再用画笔把PHOTOSHOP的图再存比遍。注意目前发现WIN-XP的画笔存的图在AMAZON
SDK库中支持的更好。
|
|
|
|
|
|
|
|
|