2008年10月25日星期六

UIP1.0移植需注意的问题

1, 修改时钟定时接口部分,主要是利用它需定时执行必须的网络操作;
2, 加入网络驱动
3, 修改Checksum函数部分
4, 给结构体和联合体加上不对齐关键字


主程序步骤:
1, 要有一个UIP_APPCALL定义的函数,有事件发生时,uip会自动调用它,可参照自带的例程;应用程序或协议在这里面实现;
2, 要先进行初始化,设定IP,MAC地址,子网掩码,网关地址等等,要在uip_opt.h内设置是否是固定的,及其他设置。Uip_conf.h设置另外一些参数;
3, 要有个uip_main(void)函数,参照uip_main.c,要定时调用此函数;

2008年10月22日星期三

洋县归来

去洋县出了趟差,看了秦岭、蔡伦墓和朱�,比较顺利,终于回来了。

2008年10月10日星期五

KEIL+JLINK 外部FLASH调试

首先要编写对应的链接脚本(target->linker->linker script ile)和调试初始化文件(target->debug-> initialization file),例子见附录。
把程序烧写到外部FLASH中;使用J-FLASH ARM,首先打开要烧写的文件,设置project setting,注意CPU选项卡里一定要设置,外部存储器引脚初始化,外部存储器设置等,基本步骤跟调试初始化文件一样,如图:
 
选择core->arm7/9,再在FLASH选项卡里面设置你使用的外部FLASH型号,参数等即可;
烧写完成后,即可在KEIL内使用一般的步骤,调试;
附录:
外部FLASH链接文件LPC2292-EFLASH.ld 内容如下:
/* mthomas: modified for LPC2292 */
/* yushiyou  2008.6.19*/
/* MEMORY 
{
flash : ORIGIN = 0, LENGTH = 120K
ram : ORIGIN = 0x40000000, LENGTH = 64K
}
__stack_end__ = 0x40000000 + 64K - 4;
*/
MEMORY
{
  /*单位是字节*/
  /*内部FLASH*/
  /*flash (rx) : ORIGIN = 0x00000000, LENGTH = 248k*/        /*去掉了上端boot block占据的8K空间*/
  
  /*外部FLASH BANK0, CS0 : SST39VF1601  0x80000000 - 0x801FFFFF*/
  flash (rx) : ORIGIN = 0x80000000, LENGTH = 2048k 
  
  /*ERAM地址为BANK1, CS1 : IS61LV25616  0x81000000 - 0x8107FFFF*/
  ram   (rw) : ORIGIN = 0x81000000, LENGTH = 512k         /*IS61LV25616 256K×16 */
}
__stack_end__ = ORIGIN(ram) + LENGTH(ram) -4;
/*都装载到外部RAM中*/
SECTIONS 
{
. = 0;
startup : { *(.startup)} >flash
prog : 
{
*(.text)
*(.rodata)
*(.rodata*)
*(.glue_7)
*(.glue_7t)
} >flash
__end_of_text__ = .;
.data : 
{
__data_beg__ = .;
__data_beg_src__ = __end_of_text__;
*(.data)
__data_end__ = .;
} >ram
.bss : 
{
__bss_beg__ = .;
*(.bss)
} >ram
/* Align here to ensure that the .bss section occupies space up to
_end.  Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections.  */
. = ALIGN(32 / 8);
}
. = ALIGN(32 / 8);
_end = .;
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
PROVIDE (end = .);
调试初始化文件debug_in_EFLASH.ini内容:
//*** <<< Use Configuration Wizard in Context Menu >>> *** 
FUNC void Setup (void) {
  //中断向量重新映射到片外BANK0,MEMMAP寄存器
  _WDWORD(0xE01FC040, 0x00000003);
  
  //_WDWORD(0xE01FC080,0);             //Disable PLL
  //存储器为16位,A0不做为地址线,使能CS0,CS1等
  _WDWORD(0xE002C014, 0x0f814914);   // pinsel2
  //设置BANK1的sram的参数
  //16位宽度,其它时间都为最长
  _WDWORD(0xFFE00004, 0x1000ffef);   // BCFG1
  
  //设置BANK0的NOR FLASH的参数
  //16位宽度,其它时间都为最长
  _WDWORD(0xFFE00000, 0x1000ffef);   // BCFG0
  
  PC = 0x80000000;   //指向bank0
  
}
Setup();                             // Setup for Download
//LOAD Debug_in_ChipRAM\Project.axf INCREMENTAL       // Download
LOAD obj\blink.elf INCREMENTAL       // Download
//不应该是跳到main函数吧
g, main

2008年10月9日星期四

板子调试

今天arm的板子,调好了arm小系统和外部SRAM。外部RAM给焊掉了两个焊盘,好不容易才跳了两根线。

2008年10月8日星期三

最近

昨日,刚毕业的同学们聚了一次,很爽;刚回了趟家,乱七八糟的事很多,再也不是小孩子了,再也不能无忧无虑的生活了;家里盖了新房,
挺好的;表妹领回家了对象,祝福他们;小姑又生了个男孩;一上班睡眠又不好了;追求梦想,享受生活;