boot 實現到量產新機型的學習

學習是不斷試錯的過程


  在實現該boot之前,我其實對boot缺乏一個流程的瞭解,簡單的說就是對細節的理解,深入就必須把握細節,想了解細節,就必須不斷的試錯

     

        SP20boot:

主要改動點:(1)增加校驗簽名的函數,(2)

面臨的問題:

:封裝好串口調試函數。打印是不能和下載同時使用的.查看裏面的boot是使用輪詢還是中斷,倆個不要重疊

       









設置按鍵檢測和按鍵進入進行下載的過程

              1.這個功能,首先說按鍵

              理論上這個按鍵左右兩個管腳的電平是這樣

              輸出的驅動比輸入的驅動能力大(這個是慣性)

這個設計的核心思想:按鍵下去,按鍵的(1)輸入管腳的電平發生變化,(2)並且持續一段時間

其中輸入管腳設置成

gpio_set_pin_type(GPIOE, 6,GPIO_INPUT);
gpio_set_pin_pull(GPIOE, 6, PULL_UP);
         //這裏面上下拉無所謂,上拉意味着值爲1,那個另外一個管腳電平必須爲0,反過來也可以行得通。 設置爲輸入,拉高。   另外一個管腳的值必須設置成0

gpio_set_pin_val(GPIOE, 3, 0);

然後就行




delay_ms(1);
if(gpio_get_pin_val(GPIOE, 6) == 0)
    {
        delay_ms(20);
        if(gpio_get_pin_val(GPIOE, 6) == 0)
        return 1;
    }


這個實現其實就是這兩個步驟了,前期需要初始化



另外一個設置按鍵掃描


int powerkey(void)
{
int i,value;

for(i=0;i< 20;i++)
{
value = gpio_get_pin_val(GPIOD,9);
if(value) break;
DelayMs(50);
}
if(i==20) return 1;
else return 0;
}











     

 

發佈了16 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章