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

📄 main.c

📁 一个基于MMU的操作系统的实现(代码很少
💻 C
字号:
#include <s3c2410.h>#include <serial.h>#include <sched.h> #include <swi.h>#include <interrupt.h> #define	GPB7_out	(1<<(7*2))#define	GPB8_out	(1<<(8*2))#define	GPB9_out	(1<<(9*2))#define	GPB10_out	(1<<(10*2))#define	NULL	0 static unsigned long m_RandSeed;/* 随机函数 */inline unsigned long  Rand(void)  {    return (m_RandSeed=1664525L*m_RandSeed+1013904223L)>>5;}void wait(unsigned long dly){	for(; dly > 0; dly--);}int main(void){	unsigned long i=0;	char str[2];	str[1] = '\0';		init_uart();	//波特率57600,8N1(8个数据位,无校验位,1个停止位)	DPRINTK(KERNEL_DEBUG,"\n\rkernel:enter main\n\r");			OS_ENTER_CRITICAL();		sched_init();	/**************************************************************	* int OSCreateProcess(unsigned long nand_start_addr, unsigned long len, char *parameters, long priority)	* 参数为:用户进程在nand flash的位置、长度,运行参数,优先级	* 运行参数与在linux台下运行命令相似:比如我们执行echo  "usr/local",那么:	* 您应该把你编的echo代码下载到nand flah中,让parameters="usr/local"	**************************************************************/	//创建26个进程,每个进程重复输出一个子母	//代码在user_program/UART中	for(i = 'A'; i <= 'Z'; i++){				str[0] = i;				OSCreateProcess(12*1024,1024,str,5+(Rand()&0x3f));	}	/****************************************************************	* 创建进程,代码在user_program/LEDS中	* 本进程使用4个LED进行计数,我的开发板使用GPB7-10引脚	****************************************************************/	OSCreateProcess(13*1024,1024,NULL,40);		OS_EXIT_CRITICAL();			DPRINTK(KERNEL_DEBUG,"\n\rkernel:first\n\r");		while(1){		DPRINTK(KERNEL_DEBUG,"kernel:process 0\n\r");		printk("process 0, idle\n\r");		wait(5000000);	}	return 0;}

⌨️ 快捷键说明

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