open mini netbook

open project of mini netbook, 7'' ARM netbook


You are not connected. Please login or register

tak nějaká ta slátanina

View previous topic View next topic Go down  Message [Page 1 of 1]

1 tak nějaká ta slátanina on Wed 21 Jul 2010 - 8:03

Kosta


V aplikačních sekcích skrz text, my užíváme běžící příklad- - -
TESTBENCH. Účel TESTBENCH je ilustrovat operaci vybraných podsystémů pracování s různým vstup/výstupem zařízeními. A co je nejdůležitější, TESTBENCH sloužit jako šablona k vyvinout vaše vlastní aplikace.
V této kapitole, my poskytujeme konfiguraci technických prostředků BAREBONES TESTBENCH a základní softwarový rámec k tomu, aby vstává systém a operační. My spojíme osm jsme potlačili odskok takt přejde na PORTB a osm-kanálový TRISTATE světlý-vydávající diodu (LED) pole PORTA.
Software zkontroluje na změnu stavu na PORTB. Kdy uživatel deprimuje jeden z taktu přepíná,vypínače zjistit změnu stavu a odpovídající LED na PORTA
přechodu z červen zeleném.

http://www.mcu.cz

2 Re: tak nějaká ta slátanina on Wed 21 Jul 2010 - 8:06

Kosta


Vedle vstupní hardware na PORTB a výstupu na displeji hardware na PORTA
kontroleru, tam jsou síla (sponky 10, 30, a 32) a země (sponky 11 a 31) spojení.
Standardní 5-VDC napájení může být používaný pro výkonová spojení .Pro přenosné aplikace, 9-VDC baterii vybavenou s 5-VDC regulátorem (LM340-05 či uA7805) možná užívaný jako zdroj energie. Sponky 9 skrz 11 mají odporníka (1 M), dva kondenzátoři (1.0 µ0 µF), a vypínač taktu konfigurovaného k tomu, aby poskytoval resetuje vypínač pro mikrořadič. My užíváme ZTT 10-MHz keramického rezonátora jak časová základna pro TESTBENCH. To je připojené k sponkám 12 (XTAL2) a 13 (XTAL1)

http://www.mcu.cz

3 Re: tak nějaká ta slátanina on Wed 21 Jul 2010 - 8:10

Kosta


Code:
#define L2_BASE_ADDR         0x2002c000
#define L2_DMA_BLOCK_ADDR_CONF   0x2002c000

#define L2_DMA_BLOCK_COUNT_CONF   0x2002c040

#define L2_DMA_CRTL            (L2_BASE_ADDR+0x80)
#define L2_FRACTIOIN_DMA_CONF   (L2_BASE_ADDR+0x84)
#define L2_BLOCK_DMA_CONF      (L2_BASE_ADDR+0x88)
#define L2_FLAG_CONF         (L2_BASE_ADDR+0x8C)
#define L2_BUF_ID_CONF         (L2_BASE_ADDR+0x90)
#define L2_BUF2_ID_CONF      (L2_BASE_ADDR+0x94)
#define L2_MEMORY_DMA_CONF      (L2_BASE_ADDR+0x58)
#define L2_DMA_INT_MASK1      (L2_BASE_ADDR+0x58)
#define L2_DMA_INT_MASK2      (L2_BASE_ADDR+0x60)


#define FRAC_DMA_DIRECT_WRITE   (1<<8)
#define FRAC_DMA_DIRECT_READ   (0<<8)
#define FRAC_DMA_START_REQ      (1<<9)
#define   L2_DMA_ENABLE         (1)

#define L2_BUF_MEM_BASE_ADDR   0x48000000




static T_U32 get_buf_id(PERIPHERAL_TYPE dev_type);

/*********************************************************************
  Function:      communate_conf
  Description:    Set the BUF ID Correspond to the peripheral
  Input:         buf :         data buffer
                  length :      length
                dev_type :   
  Output:       
  Return:        0 : failed  1:  ok
  Author:        Zou Tianxiang
  Date:              
**********************************************************************/
void initial_all_buf()
{
   //return AK_TRUE;
}



/*********************************************************************
  Function:      communate_conf
  Description:    Set the BUF ID Correspond to the peripheral
  Input:         PERIPHERAL_TYPE dev_type
                  GLOBE_BUF_ID buf_id
  Output:       
  Return:        0 : failed  1:  ok
  Author:        Zou Tianxiang
  Date:              
**********************************************************************/
T_U8 communicate_conf(PERIPHERAL_TYPE dev_type, GLOBE_BUF_ID buf_id)
{
   T_U32 buf_ena_val;
   T_U32 buf_id_val;
   T_U32 dam_ctrl_val;

   
  //--------------------------------------------------
   // Enable the flag effect.
   HAL_READ_UINT32(L2_FRACTIOIN_DMA_CONF, dam_ctrl_val);
   dam_ctrl_val |= (0x3<<28);
   HAL_WRITE_UINT32(L2_FRACTIOIN_DMA_CONF, dam_ctrl_val);
  //--------------------------------------------------


  //--------------------------------------------------
   // Enable the buf
   HAL_READ_UINT32(L2_BLOCK_DMA_CONF, buf_ena_val);
   buf_ena_val |= (1<<(16+buf_id));
   HAL_WRITE_UINT32(L2_BLOCK_DMA_CONF, buf_ena_val);
  //--------------------------------------------------


   if(dev_type <= DAC)
   {
     //--------------------------------------------------
      // set the Buf Id for the peripheral dev
      HAL_READ_UINT32(L2_BUF_ID_CONF, buf_id_val);      
      buf_id_val &= (~(0x7 << (dev_type*3)));   
      buf_id_val |= (buf_id << (dev_type*3));
      HAL_WRITE_UINT32(L2_BUF_ID_CONF, buf_id_val);
       //--------------------------------------------------

   }
   else
   {
     //--------------------------------------------------
      // set the BUF ID for SPI2 or gps
      HAL_READ_UINT32(L2_BUF2_ID_CONF, buf_id_val);      
      buf_id_val &= (~(0x7 << ( (dev_type - SPI2_RECE)*3)));   
      buf_id_val |= (buf_id << ( (dev_type - SPI2_RECE)*3));
      HAL_WRITE_UINT32(L2_BUF2_ID_CONF, buf_id_val);
     //--------------------------------------------------
   }

  // clear the buf
   set_buf_stat_empty(buf_id);

   return AK_TRUE;
}



/*********************************************************************
  Function:      prepare_dat_send_cpu
  Description:    use CPU MODE to prepare the data to be sent
  Input:         buf :         data buffer
                  len :         len < 512
                dev_type :   the peripheral type
  Output:       
  Return:        0 : failed  1:  ok
  Author:        Zou Tianxiang
  Date:              
**********************************************************************/
T_U8 prepare_dat_send_cpu(T_U8 *buf, T_U32 len, PERIPHERAL_TYPE dev_type)
{
   T_U32 buf_id;
   T_U32 align_4_len, len_remian_4;
   T_U32 buf_addr;
   T_U32 *p_buf_int;
   T_U32 i;
   T_U32 tmp;

   if( len > 512)
   {
      return 0;
   }
   
   align_4_len = (len & (~0x3));
   len_remian_4 = len%4;

    buf_id = get_buf_id(dev_type);
   buf_addr = L2_BUF_MEM_BASE_ADDR + buf_id * 512;
   set_buf_stat_empty((GLOBE_BUF_ID)buf_id);

   if((T_U32)buf % 4 == 0)      // if the buf is the even then it can 4 bytes write.
   {
      p_buf_int = (T_U32 *)buf;
      for(i = 0; i < align_4_len; i=i+4)
      {
         //tmp = *(p_buf_int++);
         //WriteBuf(buf_addr+i, tmp);
         *(volatile T_U32 *)(buf_addr+i) = *(p_buf_int++);
      }
      if( len_remian_4 != 0)
      {
         tmp = 0;
         for(i = 0; i < len_remian_4; i++)
         {
            tmp = tmp + (buf[align_4_len+i]<<(i*8));
         }
         //WriteBuf(buf_addr+align_4_len, tmp);
         *(volatile T_U32 *)(buf_addr + align_4_len) = tmp;
      }
   }

   else  // if the buf is the odd then it can't 4 bytes write.
   {
      for(i = 0; i < align_4_len; i=i+4)
      {
         tmp = (buf[i] | (buf[i+1] << 8) | (buf[i+2] << 16) | (buf[i+3] << 24));
         //WriteBuf(buf_addr+i, tmp);
         *(volatile T_U32 *)(buf_addr+i) = tmp;
      }
      tmp = 0;
      if( len_remian_4 != 0)
      {
         for(i = 0; i < len_remian_4; i++)
         {
            tmp = tmp + (buf[align_4_len+i]<<(i*8));
         }
         //WriteBuf(buf_addr+align_4_len, tmp);
         *(volatile T_U32 *)(buf_addr+align_4_len) = tmp;
      }
   }


   //set_buf_stat_full
   if(len <= 512-4)
   {
      *(volatile T_U32 *)(buf_addr + 0x1fc) = 0;
   }

   return 1;

}


/*********************************************************************
  Function:      rece_dat_cpu
  Description:    use CPU MODE to receive the data from L2 buf
  Input:         buf :         data buffer
                  len :         len < 512
                dev_type :   the peripheral type
  Output:       
  Return:        0 : failed  1:  ok
  Author:        Zou Tianxiang
  Date:              
**********************************************************************/
T_U8 rece_dat_cpu(T_U8 *buf, T_U32 len, PERIPHERAL_TYPE dev_type)
{
   T_U32 buf_id;
   T_U32 align_4_len, len_remian_4;
   T_U32 buf_addr;
   T_U32 *p_buf_int;
   T_U32 i;
   T_U32 tmp;

   if(len > 512)
   {
      return 0;
   }

    buf_id = get_buf_id(dev_type);
   buf_addr = L2_BUF_MEM_BASE_ADDR + buf_id * 512;

   align_4_len = (len & (~0x3));
   len_remian_4 = len%4;
   
   if((T_U32)buf % 4 == 0)      // if the buf is the even then it can 4 bytes write.
   {
      p_buf_int = (T_U32 *)buf;
      for(i = 0; i < align_4_len; i=i+4)
      {
           //*(p_buf_int++)  = ReadBuf(buf_addr+i);
          *(p_buf_int++) = *(volatile T_U32 *)(buf_addr+i);
      }
      if( len_remian_4 != 0)
      {
         //tmp = ReadBuf(buf_addr+align_4_len);
         tmp = *(volatile T_U32 *)(buf_addr + align_4_len);
         for(i=0; i<len_remian_4; i++)
         {
            buf[align_4_len+i] = (tmp >> (8*i));
         }
      }
   }

   else  // if the buf is the odd then it can't 4 bytes write.
   {
      for(i = 0; i < align_4_len; i=i+4)
      {
         //tmp = ReadBuf(buf_addr+i);
         tmp = *(volatile T_U32 *)(buf_addr+i);

         buf[i] = (tmp & 0xff);
         buf[i+1] = ((tmp >> 8) & 0xff);
         buf[i+2] = ((tmp >> 16) & 0xff);
         buf[i+3] = ((tmp >> 24) & 0xff);
      }

      if( len_remian_4 != 0)
      {
         //tmp = ReadBuf(buf_addr + align_4_len);
         tmp = *(volatile T_U32 *)(buf_addr + align_4_len);
         for(i=0; i<len_remian_4; i++)
         {
            buf[align_4_len+i] = (tmp >> (8*i));
         }
      }
   }

   return 1;
   
}



/*********************************************************************
  Function:      prepare_dat_send_dma
  Description:    use DMA MODE to prepare the data to be sent
  Input:         buf :         data buffer
                  len :         len < 512
                dev_type :   the peripheral type
  Output:       
  Return:        0 : failed  1:  ok
  Author:        Zou Tianxiang
  Date:              
**********************************************************************/
T_U8 prepare_dat_send_dma(T_U8 *buf, T_U32 len, PERIPHERAL_TYPE dev_type)
{
   T_U32 buf_id;
   T_U32 dma_conf, frac_dma_conf;
   T_U32 align_64_len, len_remian_64;
   T_U32 buf_addr;
   T_U32 i;
   T_U8  buff[512];

   if( len > 512)
   {
      return 0;
   }
   
   align_64_len = (len >> 6);   //        len / 64
   len_remian_64 = len%64;         //        len % 64

   buf_id = get_buf_id(dev_type);
   buf_addr = L2_BUF_MEM_BASE_ADDR + buf_id * 512;
   set_buf_stat_empty((GLOBE_BUF_ID)buf_id);


   //Config the L2 DMA to transfer the data of 64 align
   if(align_64_len)
   {
      // config the dma addr and count
      HAL_WRITE_UINT32(L2_DMA_BLOCK_ADDR_CONF + buf_id*4,  ((T_U32)buf & 0xfffffff) );
      HAL_WRITE_UINT32(L2_DMA_BLOCK_COUNT_CONF + buf_id*4,  align_64_len );
      
      // config the director and enable the dma
      HAL_READ_UINT32(L2_BLOCK_DMA_CONF, dma_conf);

      //  config the write direct and enable the buffer dma
      dma_conf |= ( (1<<buf_id) | (1<<(16+buf_id)) | (1<<(8+buf_id)) );
      HAL_WRITE_UINT32(L2_BLOCK_DMA_CONF, dma_conf);

      //start the dma
      HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      dma_conf |= (L2_DMA_ENABLE | (1<<(24+buf_id)));
      HAL_WRITE_UINT32(L2_DMA_CRTL, dma_conf);
      do{
         HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      }while( ( dma_conf & (1<<(24+buf_id)) ) == (1<<(24+buf_id)) );
   }

   // Config the L2 DMA to transfer the data of fraction data
   if( len_remian_64 )
   {
      // Config the direct ,  fraction data base addr , dma len
      HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      dma_conf &= (~0x1ff);
      dma_conf |= ( ((buf_id * 512/64 + align_64_len) << 1) | FRAC_DMA_DIRECT_WRITE |
                       ((len_remian_64-1)<<10) );
      HAL_WRITE_UINT32(L2_DMA_CRTL, dma_conf);

      // Config the fraction dma addr
      HAL_READ_UINT32(L2_FRACTIOIN_DMA_CONF, frac_dma_conf);      
      frac_dma_conf |=  ((T_U32)(buf+align_64_len*64) & 0xfffffff);
      HAL_WRITE_UINT32(L2_FRACTIOIN_DMA_CONF,  frac_dma_conf);

      //start the dma
      HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      dma_conf |= (L2_DMA_ENABLE | FRAC_DMA_START_REQ);
      HAL_WRITE_UINT32(L2_DMA_CRTL, dma_conf);

      do{
         HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      }while( ( dma_conf & FRAC_DMA_START_REQ ) == FRAC_DMA_START_REQ );
   }


   //set_buf_stat_full
   if(len <= 512-4)
   {
      *(volatile T_U32 *)(buf_addr + 0x1fc) = 0;
   }
   
   return 1;
}




T_U8 rece_data_dma(T_U8 *buf, T_U32 len, PERIPHERAL_TYPE dev_type)
{
   T_U32 buf_id;
   T_U32 align_64_len, len_remian_64;
   T_U32 dma_conf, frac_dma_conf;
   T_U32 buf_addr;
   T_U32 i;


       buf_id = get_buf_id(dev_type);
   buf_addr = L2_BUF_MEM_BASE_ADDR + buf_id * 512;

   if( len > 512)
   { return 0; }

   //set_buf_stat_full
   if(len <= 512-4)
   {
      *(volatile T_U32 *)(buf_addr + 0x1fc) = 0;
   }

   align_64_len = (len >> 6);         //        len / 64
   len_remian_64 = len%64;         //        len % 64
   

   
      //Config the L2 DMA to transfer the data of 64 align
   if(align_64_len)
   {
      // config the dma addr and count
      HAL_WRITE_UINT32(L2_DMA_BLOCK_ADDR_CONF + buf_id*4, ((T_U32)buf & 0xfffffff) );
      HAL_WRITE_UINT32(L2_DMA_BLOCK_COUNT_CONF + buf_id*4, align_64_len);

      // config the director and enable the dma
      HAL_READ_UINT32(L2_BLOCK_DMA_CONF, dma_conf);

      //  config the write direct and enable the buffer dma
      dma_conf &=  (~(1<<(8+buf_id)));
      dma_conf |= ( (1<<buf_id) | (1<<(16+buf_id)) );
      HAL_WRITE_UINT32(L2_BLOCK_DMA_CONF, dma_conf);

      //start the dma
      HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      dma_conf |= (L2_DMA_ENABLE | (1<<(24+buf_id)));
      HAL_WRITE_UINT32(L2_DMA_CRTL, dma_conf);
      do{
         HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      }while( ( dma_conf & (1<<(24+buf_id)) ) == (1<<(24+buf_id)) );
   }

   // Config the L2 DMA to transfer the data of fraction data
   if( len_remian_64 )
   {
      // Config the direct and fraction data base addr
      HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      dma_conf &= (~0x1ff);
      dma_conf |= ( ( (buf_id*512/64 + align_64_len) << 1) | FRAC_DMA_DIRECT_READ|
                           ((len_remian_64-1)<<10) );
      HAL_WRITE_UINT32(L2_DMA_CRTL, dma_conf);
      
      // Config the fraction dma addr and count
       HAL_READ_UINT32(L2_FRACTIOIN_DMA_CONF, frac_dma_conf );
      frac_dma_conf |= ( (T_U32)(buf+align_64_len*64) & 0xfffffff );
      HAL_WRITE_UINT32(L2_FRACTIOIN_DMA_CONF, frac_dma_conf );

      //start the dma
      HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      dma_conf |= (L2_DMA_ENABLE | FRAC_DMA_START_REQ);
      HAL_WRITE_UINT32(L2_DMA_CRTL, dma_conf);

      do{
         HAL_READ_UINT32(L2_DMA_CRTL, dma_conf);
      }while( ( dma_conf & FRAC_DMA_START_REQ ) == FRAC_DMA_START_REQ );
   }


   return 1;


}






/*********************************************************************
  Function:      get_buf_id
  Description:    get the perpheral's correspond buf ID.
  Input:         dev_type :   the peripheral type
  Output:       
  Return:        BUF ID
  Author:        Zou Tianxiang
  Date:         2007.7.1          
**********************************************************************/
static T_U32 get_buf_id(PERIPHERAL_TYPE dev_type)
{
   T_U32 buf_id;
  //--------------------------------------------------------------------
   //get the buf id
   if( dev_type <= DAC)
   {
      HAL_READ_UINT32(L2_BUF_ID_CONF, buf_id);
      buf_id = ((buf_id >> (dev_type*3)) & 0x7);
   }
   else
   {
      HAL_READ_UINT32(L2_BUF2_ID_CONF, buf_id);
      buf_id = ((buf_id >> ((dev_type - SPI2_RECE)*3)) & 0x7);
   }
  //---------------------------------------------------------------------
   return buf_id;
}



/*********************************************************************
  Function:      set_buf_stat_empty
  Description:    set the buf to empty stat
  Input:         dev_id :   the peripheral type
  Output:       
  Return:       
  Author:        Zou Tianxiang
  Date:         2007.7.1          
**********************************************************************/
void set_buf_stat_empty(GLOBE_BUF_ID buf_id)
{
   T_U32 flag_conf;
   HAL_READ_UINT32(L2_BLOCK_DMA_CONF, flag_conf);
   flag_conf |= (1<<(buf_id+24));
   HAL_WRITE_UINT32(L2_BLOCK_DMA_CONF, flag_conf);
}






/*********************************************************************
  Function:      set_buf_empty
  Description:    set the buf to empty stat
  Input:         PERIPHERAL_TYPE dev_type
  Output:       
  Return:       
  Author:        Zou Tianxiang
  Date:         2007.7.6       
**********************************************************************/
void set_buf_empty(PERIPHERAL_TYPE dev_type)
{
   T_U32 buf_id = get_buf_id(dev_type);
   set_buf_stat_empty((GLOBE_BUF_ID)buf_id);
}

http://www.mcu.cz

4 Re: tak nějaká ta slátanina on Wed 21 Jul 2010 - 8:13

Kosta


make
Code:
CC =    $(CROSS)gcc
AS =    $(CROSS)as
AR =    $(CROSS)ar
LD =    $(CROSS)ld
NM =    $(CROSS)nm
CAT=    cat
RM =    rm
OBJCOPY = $(CROSS)objcopy
OBJDUMP = $(CROSS)objdump

IMAGE = ASPEN3_BIOS_TEST


ifndef HW_NORFLASH
#HW_NORFLASH = JA11E   #8M flash
#HW_NORFLASH = NA2E       #32M flash
endif

DEFINE   = -DFLASH_$(HW_NORFLASH)

CFLAGS = -fno-builtin -nostdlib  -I. $(DEFINE) -O2
AFLAGS = -mapcs-32  -mno-fpu -I.
LDFLAGS= $(CFLAGS) -Wl,-elf2flt
OBJ = head.o main.o  console.o utils.o usb.o communicate.o

LIBS      = /tools/H-i686-pc-cygwin/arm-elf/lib/libm.a\
                /tools/H-i686-pc-cygwin/arm-elf/lib/libc.a  \
                /tools/H-i686-pc-cygwin/lib/gcc-lib/arm-elf/3.0/libgcc.a


#add by ljh
#switch two flash by HW_NORFLASH
#ifeq ($(HW_NORFLASH),JA11E)
#OBJ   := $(OBJ) flash_ja11e.o
#else
#OBJ   := $(OBJ) flash_na2e.o
#OBJ   := $(OBJ) flash_s29gl.o
#endif


$(IMAGE): $(OBJ)
   $(LD) -p -X -T bios_64M.ld    -o $(IMAGE)  $(OBJ) $(LIBS)
   $(OBJDUMP)  -h -S -l -D -z -Mreg-names-raw --show-raw-insn $(IMAGE) > $(IMAGE).txt
   $(OBJCOPY) -O binary \
      --only-section=.rodata \
      --only-section=.data \
      --only-section=.bss $(IMAGE) $(IMAGE).data
   $(OBJCOPY) -O binary \
      --only-section=.text \
      $(IMAGE) $(IMAGE).text
   cat $(IMAGE).text $(IMAGE).data >  $(IMAGE).bin

clean:
   $(RM) -rf *.o $(IMAGE) *.bin *.text *.data *.txt *.bak
   
   

%.o: %.c
   $(CC) $(CFLAGS) -c -o $@ $<

%.o: %.S
   $(CC) $(AFLAGS) -c -o $@ $<

http://www.mcu.cz

5 Re: tak nějaká ta slátanina on Wed 21 Jul 2010 - 8:23

Kosta


Code:
IF WINCESHIP
IF BSP_UART1
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM1]
    "DeviceArrayIndex"=dword:1         ;phyical uart 1,but this com is used for debug
    "Index"=dword:1   
    "Order"=dword:2   
    "SysCtlBase"=dword:8000000      ;for gpio control 
    "UartBase"=dword:20026000      ;uart regs 
    "IoLen"=dword:100   
    "Prefix"="COM"
    "Dll"="ak_serial.Dll"
    "DMAMODE"= dword:0 
    "FlowCtl"=dword:0 
ENDIF BSP_UART1
ENDIF WINCESHIP

IF BSP_UART2
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM2]
    "DeviceArrayIndex"=dword:2         ;phyical uart 2
    "Index"=dword:2   
    "Order"=dword:2   
    "SysCtlBase"=dword:8000000      ;for gpio control 
    "UartBase"=dword:20027000      ;uart regs 
    "IoLen"=dword:100   
    "Prefix"="COM"
    "Dll"="ak_serial.Dll"
    "DMAMODE"= dword:0
    "FlowCtl"=dword:0 
ENDIF BSP_UART2   

IF BSP_UART3
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM3]
    "DeviceArrayIndex"=dword:3    ;phyical uart 3
    "Index"=dword:3   
    "Order"=dword:2       
    "SysCtlBase"=dword:8000000      ;for gpio control 
    "UartBase"=dword:20028000      ;uart regs 
    "IoLen"=dword:100   
    "Prefix"="COM"
    "Dll"="ak_serial.Dll"
    "DMAMODE"= dword:0                    ;0=cpu mode 1=dma mode
    "FlowCtl"=dword:0   
ENDIF BSP_UART3     

IF BSP_UART4
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM4]
    "DeviceArrayIndex"=dword:4      ;phyical uart 4,but this com is used for sd card
    "Index"=dword:4   
    "Order"=dword:2       
    "SysCtlBase"=dword:8000000      ;for gpio control 
    "UartBase"=dword:20029000      ;uart regs 
    "IoLen"=dword:100   
    "Prefix"="COM"
    "Dll"="ak_serial.Dll"
    "DMAMODE"= dword:0                    ;0=cpu mode 1=dma mode
    "FlowCtl"=dword:1   
ENDIF BSP_UART4

http://www.mcu.cz

6 Re: tak nějaká ta slátanina on Wed 21 Jul 2010 - 8:50

Kosta


tak uvidíme co to s nimi udělá, maximálně mě vypoklonkují Smile

http://www.mcu.cz

7 Re: tak nějaká ta slátanina on Wed 21 Jul 2010 - 13:13

mard


Kosta wrote:Vedle vstupní hardware na PORTB a výstupu na displeji hardware na PORTA
kontroleru, tam jsou síla (sponky 10, 30, a 32) a země (sponky 11 a 31) spojení.
Standardní 5-VDC napájení může být používaný pro výkonová spojení .Pro přenosné aplikace, 9-VDC baterii vybavenou s 5-VDC regulátorem (LM340-05 či uA7805) možná užívaný jako zdroj energie. Sponky 9 skrz 11 mají odporníka (1 M), dva kondenzátoři (1.0 µ0 µF), a vypínač taktu konfigurovaného k tomu, aby poskytoval resetuje vypínač pro mikrořadič. My užíváme ZTT 10-MHz keramického rezonátora jak časová základna pro TESTBENCH. To je připojené k sponkám 12 (XTAL2) a 13 (XTAL1)
Nene, tam by mohlo vzniknout stojaté vlnění. Já bych nijak nepodceňoval otázku mikroprofilů vytvářených pomocí obrazce plošných spojů. Otázka je, jak to navrhnout, aby dielektrické kvalita materiálu použitého na desku plošného spoje negativně neovlivnila rozptyl parametrů. Asi by se to mělo odsimulovat nějakým programem. Odhadnout parametry a nacpat to do PSpice, by mohlo být jedno řešení, ale dost primitivní.

8 Re: tak nějaká ta slátanina on Wed 21 Jul 2010 - 13:14

mard


Code:
LIBS      = /tools/H-i686-pc-cygwin/arm-elf/lib/libm.a\
                /tools/H-i686-pc-cygwin/arm-elf/lib/libc.a  \
                /tools/H-i686-pc-cygwin/lib/gcc-lib/arm-elf/3.0/libgcc.a

Cygwin?!? Why?

Sponsored content


View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum