2013-5-1

来源:互联网 发布:复杂流程图 软件 编辑:程序博客网 时间:2024/06/01 08:58

看了多特和皇马的欧冠比赛,皇马还是被KO了。最残忍的是给了你希望,又让你绝望。不过皇马全武行,也抗不过多特的小配合,水银泻地似的,太给力了。皇马现在就一流氓豪门,已经没了以往的风采了。

言归正传。上午去老七公司宿舍,看了我写的代码,直接全部删掉,然后让我重写。这才发现自己之前的C语言白学了,位操作不熟,coding style几乎没有!看了老七写的代码,自己想跳楼的心都有了。操作register,一定要带volatile这个关键字,不然就是错的。清除位是用&操作。

代码如下:

/* led */

#define GPJ2CON 0xE0200280

#define GPJ2DAT 0xE0200284

/* pwm */

#define GPD0CON 0xE02000A0

#define GPD0DAT 0xE02000A4


void function(void)

{

volatile u32 reg_val;

/*****light up led*****/

//set pin output

reg_val  = *(volatile u32 *)GPJ2CON;

reg_val &= ~(0xF<<4);//clear bits(12~15)

reg_val |= 0x1<<4;//set bit

*(volatile u32 *)GPJ2CON = reg_val;

reg_val = *(volatile u32 *)GPJ2DAT;

reg_val &= ~(0x1<<4);//low power(bit 4)

*(volatile u32 *)GPJ2DAT = reg_val;


/*****pwm buzzer*****/

reg_val = *(volatile u32 *)GPD0CON;

reg_val &= ~0xF;//clear bits(0~3)

reg_val |= 0x1;//set bit(0~3)

*(volatile u32 *)GPD0CON= reg_val;

reg_val = *(volatile u32 *)GPD0DAT;

reg_val &= ~0x1;//low power

*(volatile u32 *)GPD0DAT = reg_val;

}


Tiny210V2 booting sequence:

1、系统上电,ROM中的固化代码做初始化操作;

2、根据跳线,选择booting device,加载BL1、BL2到SRAM执行;

3、加载OS code到DRAM,跳到OS code执行。

VIM是linux上的主要文本编辑器,VIM会影响思维,有很多优秀的skill。熟悉VIM操作,在linux上开发是必须的。