2013-5-1

看了多特和皇馬的歐冠比賽,皇馬還是被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上開發是必須的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章