📄 main.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));
}
//创建10个进程,每个进程重复输出一个数字
//代码在user_program/UART中
// for(i = '0'; i <= '9'; 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 + -