⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadkernel.c

📁 ADS环境下的类似linux内核的操作系统
💻 C
字号:
/* MShowTec - www.mshowtec.com
** msLinux loadkernel.c ver1.0
** 20051221 lmjx create limiao@mshowtec.com
** 
*/

#define MSLINUX_LOADKERNEL_C

#include "cpu_reg.h"

void set_cs_cfg(void)
{
	
}

void set_timer_cfg(void)
{
	//timer
	*(unsigned long*)ARM7_TDATA = 10;
	*(unsigned long*)ARM7_TRELOAD = 10;
	*(unsigned long*)ARM7_TCNT = 0;
	*(unsigned long*)ARM7_TMOD = 3;

}

void set_uart_cfg(void)
{

}

void set_kbd_cfg(void)
{

}


void set_sys_cfg(void)
{

}

void set_int_cfg(void)
{
	//interrupt ctl
	*(unsigned long*)ARM7_INTMASK = 0;
	//KBD
	//kbd enable,use extInt1,subIntNO.=0
	*(unsigned long*)ARM7_KBDCON = 3;
	
	//Touch
	//touch enable,use extInt1,subIntNO.=1
	*(unsigned long*)ARM7_TOUCHCON = 0x103;

}



void init_memorry()
{

 unsigned char *psrc,*pdst;
 unsigned long sz,i;
  /* INITIALISED DATA from ESRAM region */
  psrc = (unsigned char*)&Load$$ESRAM$$Base;
  pdst = (unsigned char*)&Image$$ESRAM$$Base;
  sz = (unsigned long)&Image$$ESRAM$$Length;
  for(i=0;i<sz;i++)
  	*pdst++ =*psrc++;
  	
 pdst = (unsigned char*)&Image$$ESRAM$$ZI$$Base;
 sz = (unsigned long)&Image$$ESRAM$$ZI$$Length;
 for(i=0;i<sz;i++)
 	*pdst++ = 0;
 	
  /* INITIALISED DATA from MEMORY region */
  psrc = (unsigned char*)&Load$$MEMORY$$Base;
  pdst = (unsigned char*)&Image$$MEMORY$$Base;
  sz = (unsigned long)&Image$$MEMORY$$Length;
  for(i=0;i<sz;i++)
  	*pdst++ =*psrc++;
  	
 pdst = (unsigned char*)&Image$$MEMORY$$ZI$$Base;
 sz = (unsigned long)&Image$$MEMORY$$ZI$$Length;
 for(i=0;i<sz;i++)
 	*pdst++ = 0;
 
}


void loadkernel()
{  
	int i,x,y;
	unsigned short NandId;
	char outbuf[40];

	set_cs_cfg();
	set_timer_cfg();
	set_uart_cfg();
	set_kbd_cfg();
	set_sys_cfg();
	set_int_cfg();
	
	init_memorry();
	start_kernel();
		
	printk("can not run to here\r\n");
	for(;;);
	
	return;	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -