|   当前位置: Home > Linux > 嵌入式系统 > Boot loader >  文章 | 
	        | 
	     
	     
	      | 
	        
		  
		   ARM的嵌入式Linux移植体验之BootLoader 
		  
		
               | 
             
             
              |  
                文章来源: 天极开发 
		文章作者: 宋宝华 
		发布时间: 2006-08-12
		  
		字体: 
		  [大
		  中
		  小]
		  
               | 
	     
	     
	      | 
	           
		
		
		  
		     | 
		    
		    
                      STEP1的putstr(vivi_banner)语句在串口输出一段字符说明vivi的版本、作者等信息,vivi_banner定义为:
  
    
        
            const char *vivi_banner = "VIVI version " VIVI_RELEASE " (" VIVI_COMPILE_BY "@" VIVI_COMPILE_HOST ") (" VIVI_COMPILER ") " UTS_VERSION "\r\n"; | 
         
    
 
   reset_handler进行相应的复位处理:
  
    
        
            void reset_handler(void) {  int pressed;
   pressed = is_pressed_pw_btn();
   if (pressed == PWBT_PRESS_LEVEL) {   DPRINTK("HARD RESET\r\n");   hard_reset_handle();  } else {   DPRINTK("SOFT RESET\r\n");   soft_reset_handle();  } } | 
         
    
 
   hard_reset_handle会clear内存,而软件复位处理则什么都不做:
  
    
        
            static void hard_reset_handle(void) {  clear_mem((unsigned long)USER_RAM_BASE, (unsigned long)USER_RAM_SIZE);  } | 
         
    
 
   STEP2进行板初始化,设置时间和可编程I/O口:
  
    
        
            int board_init(void) {  init_time();  set_gpios();
   return 0; } | 
         
    
 
   STEP3进行内存映射及MMU初始化:
  
    
        
            void mem_map_init(void) {  #ifdef CONFIG_S3C2410_NAND_BOOT   mem_map_nand_boot();  #else   mem_map_nor();  #endif  cache_clean_invalidate();  tlb_invalidate(); }  | 
         
    
 
 
		    
                      
		      
		      
		   | 
		 
               
	     | 
	   
	  
	    | 
	      ↑返回顶部
	       
	      打印本页
	       
	      关闭窗口↓
	       
	     | 
	   
	  
	    
	       
	      
	      
	      
             | 
           
         
        | 
       
        
	  
	  
          
          
         
         
         
         
         
         
         
         
         
         
         
         
	  
        |