앞의 문서(5517ref 소스비교)에 이어지는 내용이다. 워낙 분량이 많아서 두개의 문서로 나눈 것이니, 혼동 없기를 바란다.
여전히 가장 최근의 5517ref 소스와 여기석 소스와의 비교이다.

5517ref VS 여기석

$(CP) $(subst $(BAD_SLASH),$(GOOD_SLASH),$(@F)) \
$(CP) $(subst $(BAD_SLASH),$(GOOD_SLASH),$<) \
ifeq ($(DVD_HOST),unix)
...
else
  SLASH := $(DOS_SLASH)
  GOOD_SLASH := $(DOS_SLASH)
  BAD_SLASH := $(UNIX_SLASH)
  DVD_BUILD_DIR := $(shell cd)
...
#     DVD_HOST = pc/win98   Make will build using DOS commands and paths
...
  ifeq "$(DVD_HOST)" "pc"
...
  else
    # For win98/win95 we remove all cmd /c parts
        CAT     := type
        CD      := cd
        CLS     := cls
        CP	:= copy
        DIFF    := fc /B
        ECHO    := echo
        NULL    := NUL:
        RM      := -del
        RMDIR   := rmdir
        RENAME  := rename
  endif
...
    DVD_OS := OS21
...
ifneq "$(filter $(DVD_OS),OS20 OS21)" "$(DVD_OS)"
ifeq ($(DVD_HOST),pc)
  SLASH := $(DOS_SLASH)
  GOOD_SLASH := $(DOS_SLASH)
  BAD_SLASH := $(UNIX_SLASH)
  DVD_BUILD_DIR := $(shell cd)
else
...
#     DVD_HOST = pc     Make will build using DOS commands and paths
...
    DVD_OS := OS40
...
ifneq "$(filter $(DVD_OS),OS20 OS40)" "$(DVD_OS)"
...
    ST40_TOOLSET_PATH := -I$(shell cygpath -u $$ST40ROOT)/include
...
    ST40_TOOLSET_PATH := -I$(ST40ROOT)/include
...
    ST40_TOOLSET_PATH := -I$(shell cygpath -u $$ST40ROOT)/OS40/include -I$(shell cygpath -u $$ST40ROOT)/ST40/include
...
    ST40_TOOLSET_PATH := -I$(ST40ROOT)/OS40/include -I$(ST40ROOT)/ST40/include
+rw(__inline)     // support __inline reserved word
윗 부분을 제외하고는 동일하다
:mb361:5516 :mb382:5517  :mb376:5528 :espresso:5528
...
:mediaref:GX1            :mb376:GX1  :espresso:GX1
                :mb361:5516 :mb382:5517
...
                :mediaref:GX1
      ifeq "$(findstring $(DVD_FRONTEND),5514 5516 5517 5528)" "$(DVD_FRONTEND)"
...
$(CC) -debug-runtime -g -cpp $< $(ST20_CFLAGS) $($(basename $@)_CFLAGS) $($(basename $@)_ST20_CFLAGS)\
...
$(CC) -debug-runtime -g $(LIBRARIES) -T $(CONFIG_FILE) \
...
CC		= sh4gcc
AR		= sh4ar
LD		= sh4gcc
RUN		= sh4xrun
DB		= sh4gdb
LINK            = sh4gcc
...
# Default is to run from region P1 (cached)
ifndef OS21_REGION
OS21_REGION     := p1
endif
 
CFLAGS	+= $(DVD_CFLAGS)
...
CFLAGS += -O$(OPTLEVEL) -DST40_OS21
 
LDOPTS	= -mboard=$(DVD_PLATFORM)$(if $($(basename $@)_REGION),$($(basename $@)_REGION),$(OS21_REGION)) \
          -mruntime=os21 -lm
AROPTS	= -cr
...
$(CC) $(ST40_CFLAGS) $($(basename $@)_CFLAGS) $($(basename $@)_ST40_CFLAGS) \
      $(INCLUDES) $(BASE_INCLUDES) $(OS_INCLUDES) -mruntime=os21 -o $@ -c $<
...
$(AR) -cr $@ $(filter %.o,$^) $(foreach LIB,$(filter lib%.a,$^),$(shell $(AR) -t $(FIRST_LIB_IN_PATH)))
      ifeq "$(findstring $(DVD_FRONTEND),5514 5516 5517)" "$(DVD_FRONTEND)"
...
$(CC) $< $(ST20_CFLAGS) $($(basename $@)_CFLAGS) $($(basename $@)_ST20_CFLAGS)\
...
$(CC) $(LIBRARIES) -T $(CONFIG_FILE) \
...
CC	       = st40cc
AR	       = st40ar
LINK           = st40ld
MKARCH	       = os40mkarch
...
CFLAGS	+= $(DVD_CFLAGS) -c -little -DOS40 -i
...
CFLAGS += -O$(OPTLEVEL)
 
# Determine ST40 platform
ST40_PLATFORMS := :GX1:st40GX1-demo :NGX1:st40GX1-demo \
                  :7750:sh4overdrive :STB1:st40stb1-overdrive
 
# Calculate ST40_PLATFORM from platform list
ST40_PLATFORM := $(strip \
                   $(foreach i,$(ST40_PLATFORMS),\
                     $(if $(findstring :$(DVD_FRONTEND):,$(i)),\
                       $(subst :$(DVD_FRONTEND):,,$(i)),)))
 
# OS40 libraries
OSLIB_PATH := -L$(ST40ROOT)/ST40/lib -L$(ST40ROOT)/OS40/lib
 
# OS40 includes
OS_INCLUDES := -I$(ST40ROOT)/OS40/platform/$(ST40_PLATFORM)/include/chorus
...
$(CC) $< $(ST40_CFLAGS) $($(basename $@)_CFLAGS) $($(basename $@)_ST40_CFLAGS) \
      $(INCLUDES) $(BASE_INCLUDES) $(OS_INCLUDES) -o $@
...
$(AR) $@ -r $(filter %.o,$^) $(foreach LIB,$(filter lib%.a,$^),$(shell $(AR) -t $(FIRST_LIB_IN_PATH)))
...
ifdef DEBUG
  MKARCH_EXTRA := -d
endif
 
CONFIG_FILE = $(if $(SPECIAL_CONFIG_FILE),$(SPECIAL_CONFIG_FILE),\
                                          $(DVD_PLATFORM)$(if $(UNIFIED_MEMORY),_um).cfg)
 
ifdef GENERATE_MAP
  EXTRA_LINK_FLAGS = -M $(basename $@).map
endif
...
$(LINK) -N little $(LIBRARIES) \
      $(ST40_LKFLAGS) $(EXTRA_LINK_FLAGS) $($(basename $@)_LKFLAGS) $($(basename $@)_ST40_LKFLAGS) \
...
      $(if $(filter user,$($(basename $@)_ACTOR)),-lebd.u,-lebd.s) -lCXX_40le \
      -lc_40le -r -o $(basename $@).r
$(MKARCH) -p $(ST40_PLATFORM) $(ST40_MKFLAGS) $($(basename $@)_ST40_MKFLAGS) \
      $(MKARCH_EXTRA) -c $@ \
      $(if $(filter user,$($(basename $@)_ACTOR)),-u,-s) $(basename $@).r
$(RM) $(basename $@).r
endef
...
st40run $(addprefix -l ,$(CFG_PATH)) -i $(CONFIG_FILE) -t $(TARGET) $(subst _RUN,,$@) \
      $(ST40_RUNARGS) $(DVD_RUNARGS)
endef
...
st40run -g $(addprefix -l ,$(CFG_PATH)) -i $(CONFIG_FILE) -t $(TARGET) $(subst _DEBUG_RUN,,$@) \
      $(ST40_RUNARGS) $(DVD_RUNARGS)
...
endif   # ST40 toolset variables and rules
	if(slot_data->general_dma != NO_DMA)
	{
}
...
    unsigned int avd = slot;        
...
#ifdef PTI3
    switch (avd)                                                    
    {                                                             
    	case PTI_VIDEO_SLOT:                                        
	  interrupt_lock();						
	  tc[DMA_ENABLE]      	    = 0xf - (2<<avd);		
          tc[DMA1_SETUP]            = 1;                            
          tc[DMA1_BASE]		    = (unsigned int)(data);		
    	  tc[DMA1_TOP]		    = (unsigned int)(0xffffffff);	
	  tc[DMA1_WRITE]  	    = (unsigned int)(data+length);	
    	  tc[DMA1_READ]		    = (unsigned int)(data); 	
	  tc[DMA1_CDADDR]           = VIDEO_CD_FIFO;                
	  tc[DMA_ENABLE]	    = 0xf;				
	  ptii_last_dma_write[avd]  = (unsigned int)(data+length);	
...
	  interrupt_unlock();					
	break;                                                      
...
	  interrupt_lock();						
	  tc[DMA_ENABLE]      	    = 0xf - (2<<avd);		
          tc[DMA2_SETUP]            = 1;                            
          tc[DMA2_BASE]		    = (unsigned int)(data);		
    	  tc[DMA2_TOP]		    = (unsigned int)(0xffffffff);   
	  tc[DMA2_WRITE]  	    = (unsigned int)(data+length);	
    	  tc[DMA2_READ]		    = (unsigned int)(data); 	
	  tc[DMA2_CDADDR]           = AUDIO_CD_FIFO;                
	  tc[DMA_ENABLE]	    = 0xf;				
	  ptii_last_dma_write[avd]  = (unsigned int)(data+length);	
 
	  /* If required, enable the DMA interrupt for the slot */
	  if (ptii_callbacks[pti_interrupt_dma_complete].callback_fn != NULL)    
	  {
	    volatile unsigned int tmp; 
 
	    tmp = tc[DMAempty_EN];
	    tmp |= (1 << slot);
	    tc[DMAempty_EN] = tmp;
	  }
	  interrupt_unlock();					
	break;                                                  
...
	  interrupt_lock();						
	  tc[DMA_ENABLE]      	    = 0xf - (2<<avd);		
          tc[DMA3_SETUP]            = 1;                            
          tc[DMA3_BASE]		    = (unsigned int)(data);		
    	  tc[DMA3_TOP]		    = (unsigned int)(0xffffffff);   
	  tc[DMA3_WRITE]  	    = (unsigned int)(data+length);	
    	  tc[DMA3_READ]		    = (unsigned int)(data); 	
          tc[DMA3_CDADDR]           = I_DATA_CD_FIFO;               
	  tc[DMA_ENABLE]	    = 0xf;				
	  ptii_last_dma_write[avd]  = (unsigned int)(data+length);	
 
	  /* If required, enable the DMA interrupt for the slot */
	  if (ptii_callbacks[pti_interrupt_dma_complete].callback_fn != NULL)    
	  {
	    volatile unsigned int tmp; 
 
	    tmp = tc[DMAempty_EN];
	    tmp |= (1 << slot);
	    tc[DMAempty_EN] = tmp;
	  }
	  interrupt_unlock();					
	break;                                                      
 
      default:                                                      
	break;                                                      
    }                                                             
#else
    /* --- Initialize dma engine in case of PTI1 --- */
    /* --- Initialize dma engine for tranfer --- */
    interrupt_lock();						
    tc[DMA_ENABLE]      	= 0xf - (2<<avd);	
    tc[DMA1_BASE+avd]       	= (unsigned int)(data); 	
    tc[DMA1_TOP+avd]        	= (unsigned int)(0xFFFFFFFF);   
    tc[DMA1_WRITE+avd]      	= (unsigned int)(data+length);	
    tc[DMA1_READ+avd]       	= (unsigned int)(data); 	
    tc[DMA_ENABLE]		= 0xf;			
    ptii_last_dma_write[avd]	= (unsigned int)(data+length);	
    interrupt_unlock();					
#endif    
...
boolean ptii_dma_synchronize(	unsigned int slot )
{
ptii_slot_t	*slot_data = &ptii_slots[slot];
 
    /* --- Wait for completion --- */
#ifdef PTI3
     switch(slot)
       {
       case PTI_VIDEO_SLOT:
	 while( ptii_last_dma_write[slot] != tc[DMA1_READ])
	   {
	     task_delay(2);  
	   }
	 break;
       case PTI_AUDIO_SLOT:
	 while( ptii_last_dma_write[slot] != tc[DMA2_READ])
	   {
	     task_delay(2);  
	   }
	 break;
       case PTI_DATA_SLOT:
	 while( ptii_last_dma_write[slot] != tc[DMA3_READ])
	   {
	     task_delay(2);  
	   }
	 break;
       default:
	 return(true);
	 break;
       }
#else
    while( ptii_last_dma_write[slot] != tc[DMA1_READ+slot] )
      {
	task_delay(2);    /* PMC 16/05/00 added delay to remove busy loop */
      }
#endif
 
    ptii_busy_wait_one_packet_time();
 
    /* --- Restore data --- */
 
    initialize_avd_dma( slot, slot_data->buffer_base, slot_data->buffer_top ); 
 
    return false;
}
#ifdef PTI3
...
#endif
 
    /* --- Initialize dma engine for tranfer --- */
 
    setup_transfer_on_avd_dma( slot, data, length );
 
    return false;
}
...
boolean ptii_dma_synchronize(	unsigned int slot )
{
ptii_slot_t	*slot_data = &ptii_slots[slot];
 
    /* --- Wait for completion --- */
#ifdef PTI3
     switch(slot)
       {
       case PTI_VIDEO_SLOT:
	 while( ptii_last_dma_write[slot] != tc[DMA1_READ])
	   {
	     task_delay(2);  
	   }
	 break;
       case PTI_AUDIO_SLOT:
	 while( ptii_last_dma_write[slot] != tc[DMA2_READ])
	   {
	     task_delay(2);  
	   }
	 break;
...
	 while( ptii_last_dma_write[slot] != tc[DMA3_READ])
	   {
	     task_delay(2);  
	   }
	 break;
       default:
	 return(true);
	 break;
       }
#else
    while( ptii_last_dma_write[slot] != tc[DMA1_READ+slot] )
      {
	task_delay(2);    /* PMC 16/05/00 added delay to remove busy loop */
      }
#endif
 
    ptii_busy_wait_one_packet_time();
 
    /* --- Restore data --- */
 
    initialize_avd_dma( slot, slot_data->buffer_base, slot_data->buffer_top ); 
  • computer/digitalarena/5517ref_소스_비교2.txt
  • Last modified: 3 years ago
  • by likewind