久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

自己做單片機實時操作系統(tǒng)1前言

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年01月30日   【字體:

操作系統(tǒng)在之前對于我自己還說一直是一個很陌生的東西,不知道該如何的理解和定義。終于當(dāng)完成某些比較繁瑣的項目時,發(fā)現(xiàn)多任務(wù)的操作系統(tǒng)是一個很好的東西。
之前總是在看著別人怎么去實現(xiàn)一個操作系統(tǒng),最終有了自己去寫一個的想法。按照ucOS的作者說的一樣,操作系統(tǒng)最終就是一個保護寄存器和恢復(fù)寄存器的動作。

手上只有一個MCU飛思卡爾DG128的開發(fā)板,然后就開始寫代碼吧。當(dāng)然要先練習(xí)一下自己的C 語言啦。

1、理解一下函數(shù)指針先。
我們知道每一個函數(shù)都有自己的一個指針
void ProcFun1(void)
那么ProcFun1就是一個指針。
如下面一個我測試的程序:

typedef void(*VOID_FUN_PTR)(void); 定義一個void*的類型
void DelayTime(int duty)
{
 while(duty--)
 {
  _FEED_COP(); /* feeds the dog */
 };
}


void FunTask1(void) {
int i;
 for(i = 0;i < 8;i++)
 {
   PTP = 1<<i;     //這個實在LED上顯示個流水燈。
  DelayTime(50000);
 }
}
void main(void) {
  /* put your own code here */
  VOID_FUN_PTR pFun;    創(chuàng)建一個局部函數(shù)指針
 InitSystem();
 EnableInterrupts;
 pFun = FunTask1;       對指針進行一個賦值
  for(;;) {
    _FEED_COP(); /* feeds the dog */
 (pFun)();            執(zhí)行funtask1,取地址,然后通過()執(zhí)行函數(shù)。就可以執(zhí)行到制定位置的一個函數(shù)了。
  } /* loop forever */
  /* please make sure that you never leave main */
}
到這里就知道函數(shù)指針一個怎么去用了。下一步就是棧是怎么保護和恢復(fù)的的。

編輯原因--修改函數(shù)指針的理解

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 成人9ⅰ免费影视网站 | 亚洲一区二区免费 | 日本不卡高字幕在线2019 | 青青草手机在线视频 | 成年人免费看视频 | 97香蕉视频| 久久中文视频 | 国产视频在线观看视频 | 日韩一级黄色片 | aa一级片 | 中文字幕一二区 | www色| 日韩毛片视频 | 精品免费在线 | 日本美女一级片 | 2018天天操| 午夜国产福利 | 亚洲成人一区二区 | 亚洲国产日韩在线 | 国产永久精品 | 欧美18免费视频 | 亚洲国产日本 | 狠狠干影院| 欧美福利一区 | 伊人久久精品 | 国产精品久久久久久妇女6080 | 91久久久精品 | 成人黄色一级片 | 国产在线毛片 | 国产伦精品一区二区 | 国产欧美成人 | 日韩在线小视频 | 亚洲一区免费视频 | 亚洲一区在线视频 | www.av在线播放 | 欧美激情网址 | 国产丝袜一区 | 99视频精品 | 97免费在线视频 | 午夜视频在线免费观看 | 欧美在线日韩 |