亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_cpu.lst

?? 給出一個簡單操作系統在AVR中應用實例
?? LST
?? 第 1 頁 / 共 2 頁
字號:
   1               		.file	"os_cpu.c"
   2               		.arch at90s8515
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  64               	.global	InitOSTimer
  66               	InitOSTimer:
   1:C:/WinAVR/minOS_WinAVR/os_cpu.c **** /*
   2:C:/WinAVR/minOS_WinAVR/os_cpu.c **** ***************************************************************************************************
   3:C:/WinAVR/minOS_WinAVR/os_cpu.c **** *                                      minOS 0.01v
   4:C:/WinAVR/minOS_WinAVR/os_cpu.c **** *                                The Real-Time OS Kernel
   5:C:/WinAVR/minOS_WinAVR/os_cpu.c **** *                                  All Rights Reserved
   6:C:/WinAVR/minOS_WinAVR/os_cpu.c **** * File : OS_CPU.C
   7:C:/WinAVR/minOS_WinAVR/os_cpu.c **** * 作者 : 21icbbs網友 LM7556 ,2004年7月   by : LM7556 , China , 2004-2004 
   8:C:/WinAVR/minOS_WinAVR/os_cpu.c **** *
   9:C:/WinAVR/minOS_WinAVR/os_cpu.c **** ***************************************************************************************************
  10:C:/WinAVR/minOS_WinAVR/os_cpu.c **** */
  11:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  12:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  13:C:/WinAVR/minOS_WinAVR/os_cpu.c **** #define OS_CPU_GLOBALS
  14:C:/WinAVR/minOS_WinAVR/os_cpu.c **** #include "OS_Includes.h"
  15:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  16:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //#pragma interrupt_handler OSTickISR:8  //uses Timer0 for time ticks.
  17:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  18:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //;CPU specific definitions 
  19:C:/WinAVR/minOS_WinAVR/os_cpu.c **** #define C51_CRYSTAL_FREQ   4000000ul
  20:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //;Determine the reload values for timer 0 this is automated by the next macro
  21:C:/WinAVR/minOS_WinAVR/os_cpu.c **** #define T0_RELOAD  C51_CRYSTAL_FREQ / OS_TICKS_PER_SEC / 1024
  22:C:/WinAVR/minOS_WinAVR/os_cpu.c **** #define T0_TCNT0 (256 - (T0_RELOAD & 0xff))
  23:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //Initial OS Timer for time ticks --- 初始化時間節拍定時器。
  24:C:/WinAVR/minOS_WinAVR/os_cpu.c **** void InitOSTimer(void)
  25:C:/WinAVR/minOS_WinAVR/os_cpu.c **** {
  68               	.LM1:
  69               	/* prologue: frame size=0 */
  70               	/* prologue end (size=0) */
  26:C:/WinAVR/minOS_WinAVR/os_cpu.c ****   TIMSK |= (1<<1);     // set T0IE0
  72               	.LM2:
  73 0000 89B7      		in r24,89-0x20
  74 0002 8260      		ori r24,lo8(2)
  75 0004 89BF      		out 89-0x20,r24
  27:C:/WinAVR/minOS_WinAVR/os_cpu.c ****   TCCR0  = 0x05;       // CTC0=CK/1024
  77               	.LM3:
  78 0006 85E0      		ldi r24,lo8(5)
  79 0008 83BF      		out 83-0x20,r24
  28:C:/WinAVR/minOS_WinAVR/os_cpu.c ****   TCNT0  = T0_TCNT0;   // (256 - (T0_RELOAD & 0xff))
  81               	.LM4:
  82 000a 8AE7      		ldi r24,lo8(122)
  83 000c 82BF      		out 82-0x20,r24
  29:C:/WinAVR/minOS_WinAVR/os_cpu.c ****   SREG  |= (1<<7);     // SEI
  85               	.LM5:
  86 000e 8FB7      		in r24,95-0x20
  87 0010 8068      		ori r24,lo8(-128)
  88 0012 8FBF      		out 95-0x20,r24
  89               	/* epilogue: frame size=0 */
  90 0014 0895      		ret
  91               	/* epilogue end (size=1) */
  92               	/* function InitOSTimer size 11 (10) */
  98               	.global	OSTaskCreate
 100               	OSTaskCreate:
  30:C:/WinAVR/minOS_WinAVR/os_cpu.c **** }
  31:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  32:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //建立一個任務(Create a Task)。
  33:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //Inport :  tFunc --- function address , tStk --- stack bottom , prio --- Priority .
  34:C:/WinAVR/minOS_WinAVR/os_cpu.c **** void OSTaskCreate (void (*tFunc)(void) , OS_STK *tStk, INT8U prio) 
  35:C:/WinAVR/minOS_WinAVR/os_cpu.c **** {
 102               	.LM6:
 103               	/* prologue: frame size=0 */
 104 0016 CF93      		push r28
 105 0018 DF93      		push r29
 106               	/* prologue end (size=2) */
 107 001a 282F      		mov r18,r24
 108 001c 392F      		mov r19,r25
 109 001e F72F      		mov r31,r23
 110 0020 E62F      		mov r30,r22
 111 0022 842F      		mov r24,r20
  36:C:/WinAVR/minOS_WinAVR/os_cpu.c ****  	OSTCB[prio].OSTaskStatus = OS_TASK_Rdy;
 113               	.LM7:
 114 0024 9927      		clr r25
 115 0026 B92F      		mov r27,r25
 116 0028 A82F      		mov r26,r24
 117 002a AA0F      		lsl r26
 118 002c BB1F      		rol r27
 119 002e AA0F      		lsl r26
 120 0030 BB1F      		rol r27
 121 0032 A80F      		add r26,r24
 122 0034 B91F      		adc r27,r25
 123 0036 A050      		subi r26,lo8(-(OSTCB))
 124 0038 B040      		sbci r27,hi8(-(OSTCB))
 125 003a 8CEF      		ldi r24,lo8(-4)
 126 003c DB2F      		mov r29,r27
 127 003e CA2F      		mov r28,r26
 128 0040 8A83      		std Y+2,r24
  37:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	OSTCB[prio].OSStkTop = (INT16U)tStk-1 /* Initial value when main was called             */
 130               	.LM8:
 131 0042 3F97      		sbiw r30,15
 132 0044 ED93      		st X+,r30
 133 0046 FC93      		st X,r31
 134 0048 3F96      		adiw r30,15
  38:C:/WinAVR/minOS_WinAVR/os_cpu.c ****                           -12             /* reserve for to save R0-R5 , R26-R31 registers  */
  39:C:/WinAVR/minOS_WinAVR/os_cpu.c ****                           -sizeof(INT16U) /* The PC value to be loaded                      */
  40:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 					   ;
  41:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	*--tStk	=  (INT16U const)tFunc & 0xff;   /* Save low byte of task function address   */
 136               	.LM9:
 137 004a 2293      		st -Z,r18
  42:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	*--tStk	=  (INT16U const)tFunc / 0x100;  /* Save high byte of task function address  */
 139               	.LM10:
 140 004c 3197      		sbiw r30,1
 141 004e 832F      		mov r24,r19
 142 0050 9927      		clr r25
 143 0052 8083      		st Z,r24
 144               	/* epilogue: frame size=0 */
 145 0054 DF91      		pop r29
 146 0056 CF91      		pop r28
 147 0058 0895      		ret
 148               	/* epilogue end (size=3) */
 149               	/* function OSTaskCreate size 34 (29) */
 152               	.global	OSCtxSw
 154               	OSCtxSw:
  43:C:/WinAVR/minOS_WinAVR/os_cpu.c **** }
  44:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  45:C:/WinAVR/minOS_WinAVR/os_cpu.c **** static unsigned int SaveSP; //用于保存需恢復的SP,在OSTickISR或用戶中斷結束做任務切換時,恢復SP.
  46:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  47:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //context switch interrupt --- 軟中斷任務切換
  48:C:/WinAVR/minOS_WinAVR/os_cpu.c **** void OSCtxSw(void) 
  49:C:/WinAVR/minOS_WinAVR/os_cpu.c **** {
 156               	.LM11:
 157               	/* prologue: frame size=0 */
 158               	/* prologue end (size=0) */
  50:C:/WinAVR/minOS_WinAVR/os_cpu.c **** //asm("in %0, %1" : "=r" (value) : "I" (PORTD) : );
  51:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  52:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R31");
 160               	.LM12:
 161               	/* #APP */
 162 005a FF93      		PUSH R31
  53:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R30");
 164               	.LM13:
 165 005c EF93      		PUSH R30
  54:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R29");	
 167               	.LM14:
 168 005e DF93      		PUSH R29
  55:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R28");
 170               	.LM15:
 171 0060 CF93      		PUSH R28
  56:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R27");
 173               	.LM16:
 174 0062 BF93      		PUSH R27
  57:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R26");
 176               	.LM17:
 177 0064 AF93      		PUSH R26
  58:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 
  59:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R0");
 179               	.LM18:
 180 0066 0F92      		PUSH R0
  60:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R1");
 182               	.LM19:
 183 0068 1F92      		PUSH R1
  61:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R2");	
 185               	.LM20:
 186 006a 2F92      		PUSH R2
  62:C:/WinAVR/minOS_WinAVR/os_cpu.c **** 	asm("PUSH R3");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久夜甘婷婷 | 国产日本欧美一区二区| 中文字幕一区在线| 国产在线精品一区二区夜色| 在线视频国内一区二区| 国产女人aaa级久久久级| 奇米一区二区三区av| 在线免费观看不卡av| 国产欧美一区二区精品性| 青青草原综合久久大伊人精品 | 欧美亚洲国产一区二区三区| 国产欧美日韩在线看| 日本中文字幕一区| 日本精品视频一区二区| 国产精品护士白丝一区av| 国产精品一区二区黑丝| 欧美成人国产一区二区| 午夜精品国产更新| 欧美在线一区二区三区| 亚洲视频 欧洲视频| 国产999精品久久| 久久久亚洲午夜电影| 精东粉嫩av免费一区二区三区| 欧美日韩你懂得| 一区二区三区视频在线看| 99视频热这里只有精品免费| 国产片一区二区| 国产大陆a不卡| 国产午夜精品一区二区三区视频 | 亚洲高清免费视频| 日本精品一区二区三区四区的功能| 国产精品久久影院| 国产999精品久久久久久绿帽| 国产人成一区二区三区影院| 黄色资源网久久资源365| 精品乱码亚洲一区二区不卡| 麻豆91免费看| wwwwww.欧美系列| 国产一区二区三区免费观看| 久久女同互慰一区二区三区| 国内精品国产三级国产a久久| 精品国产免费人成电影在线观看四季| 毛片av一区二区三区| xnxx国产精品| 99久久综合精品| 一区二区三区四区五区视频在线观看| 色婷婷久久久亚洲一区二区三区 | 国产精品免费免费| 91社区在线播放| 亚洲国产wwwccc36天堂| 日韩写真欧美这视频| 国产一区二区在线观看视频| 国产精品毛片大码女人| 欧美三级韩国三级日本一级| 日韩av电影天堂| 国产日韩视频一区二区三区| 99久久久久久| 同产精品九九九| 久久蜜桃av一区精品变态类天堂| av不卡在线播放| 亚洲国产精品久久久久婷婷884 | 久久精品一区二区三区四区| 成人黄色免费短视频| 亚洲一级二级在线| 日韩欧美自拍偷拍| 99久久精品免费看国产| 日韩vs国产vs欧美| 亚洲欧洲一区二区在线播放| 在线综合视频播放| 成人综合婷婷国产精品久久蜜臀 | 日本视频免费一区| 国产精品久久777777| 欧美一级国产精品| 色综合天天性综合| 国产在线日韩欧美| 亚洲一区二区三区国产| 欧美国产日韩a欧美在线观看| 欧美高清激情brazzers| 不卡的av电影在线观看| 美女一区二区三区| 一区二区欧美国产| 国产精品久久久久久久久晋中| 欧美一卡二卡在线| 色噜噜夜夜夜综合网| 国产**成人网毛片九色| 日本一不卡视频| 亚洲最色的网站| 亚洲丝袜美腿综合| 久久精品夜夜夜夜久久| 欧美日韩电影在线| 色婷婷av一区二区三区大白胸| 国产一区二区精品久久99| 亚洲国产成人av| 亚洲综合色在线| 中文字幕综合网| 国产精品伦一区二区三级视频| 精品美女被调教视频大全网站| 欧美日韩夫妻久久| 欧洲视频一区二区| 欧美在线你懂的| 在线观看网站黄不卡| 97久久人人超碰| 成人app网站| 成人福利视频在线看| 国产福利91精品一区二区三区| 蜜桃av一区二区三区电影| 午夜不卡在线视频| 五月激情丁香一区二区三区| 亚洲一区二区三区美女| 亚洲一区二区三区国产| 亚洲综合小说图片| 亚洲国产wwwccc36天堂| 亚洲福利视频一区| 亚洲成av人片一区二区三区| 亚洲精品国久久99热| 亚洲欧洲日产国码二区| 亚洲欧洲99久久| 亚洲欧美日韩国产综合| 一区二区三区久久久| 一级精品视频在线观看宜春院 | 久久久久久免费毛片精品| 欧美电影免费提供在线观看| 日韩一区二区三区三四区视频在线观看| 欧美猛男超大videosgay| 欧美一区二区私人影院日本| 精品免费国产一区二区三区四区| 欧美成人video| 国产日韩欧美不卡| 亚洲狼人国产精品| 奇米精品一区二区三区四区| 国内精品第一页| 不卡视频一二三四| 欧美日本精品一区二区三区| 日韩欧美在线123| 国产精品久久久久久妇女6080| 亚洲美女偷拍久久| 日本不卡一区二区三区高清视频| 九九视频精品免费| 成人黄色免费短视频| 欧美日韩国产综合一区二区| 日韩一区二区三区高清免费看看 | 综合久久久久综合| 亚洲成va人在线观看| 国产一区二区成人久久免费影院| 成人免费看的视频| 欧美另类久久久品| 国产清纯白嫩初高生在线观看91| 一区二区三国产精华液| 狠狠色丁香久久婷婷综| 91浏览器打开| 日韩一二三四区| 国产精品久线观看视频| 日韩中文字幕区一区有砖一区| 国产一区二区精品在线观看| 欧美伊人久久久久久午夜久久久久| 日韩色在线观看| 亚洲视频1区2区| 国产精品一区在线| 欧美少妇一区二区| 亚洲国产成人私人影院tom| 天天综合天天做天天综合| 国产成人a级片| 日韩一级片网址| 亚洲永久精品大片| 成人精品国产免费网站| 欧美一区二区三区喷汁尤物| 亚洲欧美偷拍另类a∨色屁股| 蜜臀国产一区二区三区在线播放 | 夜夜嗨av一区二区三区四季av | 色综合久久中文字幕| 精品久久久久久久久久久久久久久久久 | 在线观看免费亚洲| 久久精品欧美日韩精品 | 欧美一区二区三区系列电影| 国产精品理论片| 久久精品二区亚洲w码| 在线亚洲一区观看| 国产精品美女久久福利网站| 久久99热99| 在线播放欧美女士性生活| 亚洲伦理在线免费看| 大胆亚洲人体视频| 26uuu国产在线精品一区二区| 亚洲福利视频一区二区| 色哟哟欧美精品| 亚洲欧洲精品一区二区精品久久久 | 国产99久久久国产精品| 亚洲精品一线二线三线| 日韩成人av影视| 91精选在线观看| 午夜欧美在线一二页| 欧美性受xxxx| 亚洲综合999| 欧美在线免费播放| 亚洲成人免费影院| 欧美日韩电影一区| 日本一区中文字幕| 精品少妇一区二区三区日产乱码| 日韩成人免费电影| 欧美成人欧美edvon|