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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mmc.lst

?? MMC/SD on Olimex Sam7-EX256
?? LST
?? 第 1 頁 / 共 4 頁
字號:
   1              		.code	16   2              		.file	"mmc.c"  10              	.Ltext0:  11              		.global	mmc_buffer  12              		.bss  15              	mmc_buffer:  16 0000 00000000 		.space	512  16      00000000   16      00000000   16      00000000   16      00000000   17              		.global	s_pPDC  18              		.data  19              		.align	2  22              	s_pPDC:  23 0000 0001FEFF 		.word	-130816  24              		.global	s_pPMC  25              		.align	2  28              	s_pPMC:  29 0004 00FCFFFF 		.word	-1024  30              		.global	s_pPio  31              		.align	2  34              	s_pPio:  35 0008 00F4FFFF 		.word	-3072  36              		.global	s_pSpi  37              		.align	2  40              	s_pSpi:  41 000c 0000FEFF 		.word	-131072  42              		.text  43              		.align	2  44              		.global	Delays  45              		.code 16  46              		.thumb_func  48              	Delays:  49              	.LFB2:  50              		.file 1 "mmc.c"   1:mmc.c         **** // mmc.c : MultiMediaCard functions: init, read, write ...
   2:mmc.c         **** //
   3:mmc.c         **** // Rolf Freitag 5/2003
   4:mmc.c         **** //
   5:mmc.c         **** 
   6:mmc.c         **** 
   7:mmc.c         **** 
   8:mmc.c         **** // MMC Lib
   9:mmc.c         **** #ifndef _MMCLIB_C
  10:mmc.c         **** #define _MMCLIB_C
  11:mmc.c         **** //---------------------------------------------------------------------
  12:mmc.c         **** #include "include/include.h"
  13:mmc.c         **** 
  14:mmc.c         **** 
  15:mmc.c         **** #include  "math.h"
  16:mmc.c         **** #include  "string.h"
  17:mmc.c         **** 
  18:mmc.c         **** 
  19:mmc.c         **** AT91PS_SPI s_pSpi = AT91C_BASE_SPI0;
  20:mmc.c         **** AT91PS_PIO s_pPio = AT91C_BASE_PIOA;
  21:mmc.c         **** AT91PS_PMC s_pPMC = AT91C_BASE_PMC;
  22:mmc.c         **** AT91PS_PDC s_pPDC = AT91C_BASE_PDC_SPI0;
  23:mmc.c         **** 
  24:mmc.c         **** 
  25:mmc.c         **** char mmcGetResponse(void);
  26:mmc.c         **** char mmcGetXXResponse(const char resp);
  27:mmc.c         **** char mmcCheckBusy(void);
  28:mmc.c         **** 
  29:mmc.c         **** void initSSP (void);
  30:mmc.c         **** 
  31:mmc.c         **** char mmc_buffer[512] = { 0 };	// Buffer for mmc i/o for data and registers
  32:mmc.c         **** extern char card_state;		// 0 for no card found, 1 for card found (init successfull)
  33:mmc.c         **** 
  34:mmc.c         **** 
  35:mmc.c         **** //---------------------------------------------------------------------
  36:mmc.c         **** void Delays (unsigned long a) { while (--a!=0); }
  51              		.loc 1 36 0  52              	.LVL0:  53              		@ lr needed for prologue  54              		.loc 1 36 0  55 0000 0023     		mov	r3, #0  56              	.L3:  57 0002 0133     		add	r3, r3, #1  58 0004 8342     		cmp	r3, r0  59 0006 FCD1     		bne	.L3  60              		@ sp needed for prologue  61 0008 7047     		bx	lr  62              	.LFE2:  64 000a 0000     		.align	2  65              		.global	initSPI_port  66              		.code 16  67              		.thumb_func  69              	initSPI_port:  70              	.LFB3:  37:mmc.c         **** 
  38:mmc.c         **** 
  39:mmc.c         **** void initSPI_port (void) {
  71              		.loc 1 39 0  72              	.LVL1:  40:mmc.c         **** 
  41:mmc.c         ****   //Card present -> CP - PA15
  42:mmc.c         ****   s_pPio->PIO_ODR = BIT15; //Configure in Input
  73              		.loc 1 42 0  74 000c 054B     		ldr	r3, .L10  75 000e 1A68     		ldr	r2, [r3]  76 0010 8023     		mov	r3, #128  77 0012 1B02     		lsl	r3, r3, #8  78 0014 5361     		str	r3, [r2, #20]  43:mmc.c         ****   s_pPio->PIO_PER = BIT15; //Enable PA15
  79              		.loc 1 43 0  80 0016 1360     		str	r3, [r2]  44:mmc.c         **** 
  45:mmc.c         ****   //Write protect -> WP - PA16
  46:mmc.c         ****   s_pPio->PIO_ODR = BIT16; //Configure in Input
  81              		.loc 1 46 0  82 0018 8023     		mov	r3, #128  83 001a 5B02     		lsl	r3, r3, #9  84 001c 5361     		str	r3, [r2, #20]  85              		.loc 1 39 0  86              		@ lr needed for prologue  47:mmc.c         ****   s_pPio->PIO_PER = BIT16; //Enable PA16
  87              		.loc 1 47 0  88 001e 1360     		str	r3, [r2]  48:mmc.c         **** 
  49:mmc.c         **** }
  89              		.loc 1 49 0  90              		@ sp needed for prologue  91 0020 7047     		bx	lr  92              	.L11:  93 0022 0000     		.align	2  94              	.L10:  95 0024 00000000 		.word	s_pPio  96              	.LFE3:  98              		.align	2  99              		.global	initSPI 100              		.code 16 101              		.thumb_func 103              	initSPI: 104              	.LFB4:  50:mmc.c         **** 
  51:mmc.c         **** // setup usart1 in spi mode
  52:mmc.c         **** void initSPI (void)
  53:mmc.c         **** {
 105              		.loc 1 53 0 106              	.LVL2:  54:mmc.c         **** 
  55:mmc.c         ****   // Init SPI0
  56:mmc.c         ****   //set functionality to pins:
  57:mmc.c         ****   //port0.12 -> NPCS0
  58:mmc.c         ****   //port0.16 -> MISO
  59:mmc.c         ****   //port0.17 -> MOSI
  60:mmc.c         ****   //port0.18 -> SPCK
  61:mmc.c         ****   s_pPio->PIO_PDR = BIT13 | BIT16 | BIT17 | BIT18;
 107              		.loc 1 61 0 108 0028 0E4B     		ldr	r3, .L14 109 002a 1A68     		ldr	r2, [r3] 110 002c E423     		mov	r3, #228 111 002e DB02     		lsl	r3, r3, #11 112 0030 5360     		str	r3, [r2, #4]  62:mmc.c         ****   s_pPio->PIO_ASR = BIT13 | BIT16 | BIT17 | BIT18;
 113              		.loc 1 62 0 114 0032 1367     		str	r3, [r2, #112]  63:mmc.c         ****   s_pPio->PIO_BSR = 0;
 115              		.loc 1 63 0 116 0034 0023     		mov	r3, #0 117 0036 5367     		str	r3, [r2, #116]  64:mmc.c         **** 
  65:mmc.c         **** 
  66:mmc.c         ****   //enable the clock of SPI
  67:mmc.c         ****   s_pPMC->PMC_PCER = 1 << AT91C_ID_SPI0;
 118              		.loc 1 67 0 119 0038 0B4B     		ldr	r3, .L14+4 120 003a 1A68     		ldr	r2, [r3] 121 003c 1023     		mov	r3, #16 122 003e 1361     		str	r3, [r2, #16]  68:mmc.c         ****   //l_pPMC->PMC_PCER = 1 << 5;
  69:mmc.c         **** 
  70:mmc.c         ****   // Fixed mode
  71:mmc.c         ****   s_pSpi->SPI_CR      = 0x81;               //SPI Enable, Sowtware reset
 123              		.loc 1 71 0 124 0040 0A4B     		ldr	r3, .L14+8 125 0042 1A68     		ldr	r2, [r3] 126 0044 8123     		mov	r3, #129 127 0046 1360     		str	r3, [r2]  72:mmc.c         ****   s_pSpi->SPI_CR      = 0x01;               //SPI Enable
 128              		.loc 1 72 0 129 0048 0123     		mov	r3, #1 130 004a 1360     		str	r3, [r2]  73:mmc.c         **** 
  74:mmc.c         ****   s_pSpi->SPI_MR      = 0xD0019;            //Master mode, fixed select, disable decoder, FDIV=1 (M 131              		.loc 1 74 0 132 004c 084B     		ldr	r3, .L14+12 133 004e 5360     		str	r3, [r2, #4]  75:mmc.c         **** 
  76:mmc.c         ****   //s_pSpi->SPI_CSR[1]  = 0x4A02;             //8bit, CPOL=0, ClockPhase=1, SCLK = 200kHz 
  77:mmc.c         ****   s_pSpi->SPI_CSR[1]  = 0x00001F02;           //8bit, CPOL=0, ClockPhase=1, SCLK = 48Mhz/32*31 = 48 134              		.loc 1 77 0 135 0050 084B     		ldr	r3, .L14+16 136 0052 5363     		str	r3, [r2, #52]  78:mmc.c         **** 
  79:mmc.c         ****   s_pPDC->PDC_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;
 137              		.loc 1 79 0 138 0054 084B     		ldr	r3, .L14+20 139 0056 0949     		ldr	r1, .L14+24 140 0058 1B68     		ldr	r3, [r3]  80:mmc.c         ****   s_pSpi->SPI_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;
 141              		.loc 1 80 0 142 005a FC32     		add	r2, r2, #252 143              		.loc 1 79 0 144 005c 1962     		str	r1, [r3, #32] 145              		.loc 1 53 0 146              		@ lr needed for prologue 147              		.loc 1 80 0 148 005e 5162     		str	r1, [r2, #36]  81:mmc.c         **** 
  82:mmc.c         **** }
 149              		.loc 1 82 0 150              		@ sp needed for prologue 151 0060 7047     		bx	lr 152              	.L15: 153 0062 0000     		.align	2 154              	.L14: 155 0064 00000000 		.word	s_pPio 156 0068 00000000 		.word	s_pPMC 157 006c 00000000 		.word	s_pSpi 158 0070 19000D00 		.word	851993 159 0074 021F0000 		.word	7938 160 0078 00000000 		.word	s_pPDC 161 007c 01010000 		.word	257 162              	.LFE4: 164              		.align	2 165              		.global	spiSendByte 166              		.code 16 167              		.thumb_func 169              	spiSendByte: 170              	.LFB13:  83:mmc.c         **** 
  84:mmc.c         **** 
  85:mmc.c         **** // Initialisieren
  86:mmc.c         **** char initMMC (void)
  87:mmc.c         **** {
  88:mmc.c         **** 
  89:mmc.c         ****   //raise SS and MOSI for 80 clock cycles
  90:mmc.c         ****   //SendByte(0xff) 10 times with SS high
  91:mmc.c         ****   //RAISE SS
  92:mmc.c         ****   int i;
  93:mmc.c         ****   char response=0x01;
  94:mmc.c         **** 
  95:mmc.c         **** 
  96:mmc.c         ****  // debug_printf("Start iniMMC......");
  97:mmc.c         ****   initSPI();
  98:mmc.c         ****   //initialization sequence on PowerUp
  99:mmc.c         ****   ///CS_HIGH();
 100:mmc.c         ****   for(i=0;i<=9;i++)
 101:mmc.c         ****     spiSendByte(0xff);
 102:mmc.c         ****   ///CS_LOW();
 103:mmc.c         ****   //Send Command 0 to put MMC in SPI mode
 104:mmc.c         ****   mmcSendCmd(0x00,0,0x95);
 105:mmc.c         ****   //Now wait for READY RESPONSE
 106:mmc.c         ****   if(mmcGetResponse()!=0x01);
 107:mmc.c         **** //       debug_printf("no responce");
 108:mmc.c         **** 
 109:mmc.c         ****   while(response==0x01)
 110:mmc.c         ****   {
 111:mmc.c         ****  //  debug_printf("Sending Command 1");
 112:mmc.c         ****    //CS_HIGH();
 113:mmc.c         ****    spiSendByte(0xff);
 114:mmc.c         ****    //CS_LOW();
 115:mmc.c         ****    mmcSendCmd(0x01,0x00,0xff);
 116:mmc.c         ****    response=mmcGetResponse();
 117:mmc.c         ****   }
 118:mmc.c         ****   //CS_HIGH();
 119:mmc.c         ****   spiSendByte(0xff);
 120:mmc.c         ****  // debug_printf("MMC INITIALIZED AND SET TO SPI MODE PROPERLY.");
 121:mmc.c         ****   return MMC_SUCCESS;
 122:mmc.c         **** }
 123:mmc.c         **** 
 124:mmc.c         **** 
 125:mmc.c         **** 
 126:mmc.c         **** // Ti added mmc Get Responce
 127:mmc.c         **** char mmcGetResponse(void)
 128:mmc.c         **** {
 129:mmc.c         ****   //Response comes 1-8bytes after command
 130:mmc.c         ****   //the first bit will be a 0
 131:mmc.c         ****   //followed by an error code
 132:mmc.c         ****   //data will be 0xff until response
 133:mmc.c         ****   int i=0;
 134:mmc.c         **** 
 135:mmc.c         ****   char response;
 136:mmc.c         **** 
 137:mmc.c         ****   while(i<=64)
 138:mmc.c         ****   {
 139:mmc.c         ****    response=spiSendByte(0xff);
 140:mmc.c         ****    if(response==0x00)break;
 141:mmc.c         ****    if(response==0x01)break;
 142:mmc.c         ****    i++;
 143:mmc.c         ****   }
 144:mmc.c         ****   return response;
 145:mmc.c         **** }
 146:mmc.c         **** 
 147:mmc.c         **** char mmcGetXXResponse(const char resp)
 148:mmc.c         **** {
 149:mmc.c         ****   //Response comes 1-8bytes after command
 150:mmc.c         ****   //the first bit will be a 0
 151:mmc.c         ****   //followed by an error code
 152:mmc.c         ****   //data will be 0xff until response
 153:mmc.c         ****   int i=0;
 154:mmc.c         **** 
 155:mmc.c         ****   char response;
 156:mmc.c         **** 
 157:mmc.c         ****   while(i<=500)
 158:mmc.c         ****   {
 159:mmc.c         ****    response=spiSendByte(0xff);
 160:mmc.c         ****    if(response==resp)break;
 161:mmc.c         ****    i++;
 162:mmc.c         ****   }
 163:mmc.c         ****   return response;
 164:mmc.c         **** }
 165:mmc.c         **** char mmcCheckBusy(void)
 166:mmc.c         **** {
 167:mmc.c         ****   //Response comes 1-8bytes after command
 168:mmc.c         ****   //the first bit will be a 0

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久久久久国产越南| 亚洲精品一区二区三区福利| 国产精品久久久久久久久久免费看| 国产尤物一区二区在线| 日韩欧美激情四射| 国产一本一道久久香蕉| 欧美国产一区二区| 91网站在线播放| 午夜精品一区二区三区免费视频 | 日韩欧美一二区| 精品一区二区三区在线观看国产| 日韩视频永久免费| 成人永久aaa| 亚洲一二三区在线观看| 在线播放视频一区| 国产一本一道久久香蕉| 最新高清无码专区| 91麻豆精品国产综合久久久久久| 精品一区二区三区免费视频| 欧美国产成人精品| 91豆麻精品91久久久久久| 婷婷亚洲久悠悠色悠在线播放| 日韩免费成人网| 北岛玲一区二区三区四区| 一区二区在线免费观看| 91精品国产综合久久久久久漫画 | 亚洲最大的成人av| 日韩三区在线观看| a亚洲天堂av| 免费欧美日韩国产三级电影| 国产人妖乱国产精品人妖| 欧美性极品少妇| 国产成人自拍在线| 三级亚洲高清视频| 国产精品久久久久毛片软件| 在线不卡一区二区| 91在线视频播放地址| 麻豆久久一区二区| 亚洲中国最大av网站| 久久嫩草精品久久久精品一| 欧美视频一区二区三区四区| 国产麻豆精品95视频| 亚洲午夜久久久久久久久电影院| 久久久综合精品| 欧美久久免费观看| 91麻豆精品秘密| 国产一区在线看| 日本在线不卡一区| 亚洲激情自拍视频| 国产精品美女久久久久久久久| 欧美一区二区大片| 91成人在线免费观看| 国产丶欧美丶日本不卡视频| 天堂午夜影视日韩欧美一区二区| 亚洲精品午夜久久久| 国产欧美精品区一区二区三区| 欧美一区二区三区白人| 在线中文字幕一区二区| www.视频一区| 国产99久久久精品| 国产一区二区三区久久久| 热久久免费视频| 午夜欧美电影在线观看| 亚洲福利视频一区| 亚洲线精品一区二区三区八戒| 中文字幕一区二区在线播放 | 国产老妇另类xxxxx| 欧美aa在线视频| 奇米影视一区二区三区小说| 亚洲国产视频一区二区| 一区二区三区成人在线视频| 自拍偷自拍亚洲精品播放| 亚洲国产精品传媒在线观看| 久久久久高清精品| 久久久久国产一区二区三区四区 | 精品污污网站免费看| 一本高清dvd不卡在线观看| aaa亚洲精品| aaa欧美色吧激情视频| av一二三不卡影片| 91丨porny丨中文| 色综合 综合色| 欧美日韩卡一卡二| 欧美一区二区视频网站| 日韩视频一区二区在线观看| 精品日韩欧美一区二区| 久久精品亚洲乱码伦伦中文| 久久久久青草大香线综合精品| 久久老女人爱爱| 国产蜜臀av在线一区二区三区| 久久久国际精品| 中文字幕精品三区| 亚洲欧美日韩国产手机在线| 亚洲一二三专区| 日韩精品亚洲一区| 韩国av一区二区三区四区| 国产精品羞羞答答xxdd| 波多野结衣中文一区| 色综合久久久久综合体| 日韩精品一区二区在线观看| 久久亚洲精品小早川怜子| 国产精品网站在线观看| 亚洲欧美经典视频| 爽好多水快深点欧美视频| 九色综合狠狠综合久久| 成人一区二区在线观看| 91黄色免费版| 欧美一区二区三区在线电影| 久久精品在这里| 伊人开心综合网| 麻豆91精品91久久久的内涵| 风流少妇一区二区| 欧美性大战久久久久久久蜜臀 | 日本亚洲免费观看| 国产成人精品午夜视频免费| 91免费国产视频网站| 日韩欧美一级二级三级久久久| 日本一区二区免费在线观看视频 | 亚洲一区二区三区四区五区中文 | 国产拍揄自揄精品视频麻豆| 亚洲色图制服丝袜| 美女精品一区二区| 99re6这里只有精品视频在线观看| 欧美日韩三级一区二区| 中文字幕国产一区| 五月激情综合色| 成人精品gif动图一区| 欧美电影影音先锋| 亚洲欧洲美洲综合色网| 另类专区欧美蜜桃臀第一页| 91在线播放网址| 久久先锋资源网| 日韩高清不卡一区| 色诱视频网站一区| 中文字幕免费在线观看视频一区| 香蕉av福利精品导航| 99vv1com这只有精品| 精品人伦一区二区色婷婷| 亚洲精品国产一区二区三区四区在线| 另类小说综合欧美亚洲| 欧美中文字幕一二三区视频| 国产人成亚洲第一网站在线播放 | xnxx国产精品| 亚洲va中文字幕| 色香色香欲天天天影视综合网| 久久精品日产第一区二区三区高清版| 五月激情六月综合| 欧美午夜精品久久久久久孕妇| 国产精品午夜免费| 国产激情视频一区二区在线观看| 9191成人精品久久| 亚洲高清视频中文字幕| 色婷婷久久一区二区三区麻豆| 欧美激情一区二区三区四区| 91免费看`日韩一区二区| 亚洲国产成人午夜在线一区 | 久久综合色综合88| 日本欧美一区二区| 8x福利精品第一导航| 亚洲丶国产丶欧美一区二区三区| 91麻豆国产精品久久| 国产精品你懂的| 成人h动漫精品一区二区| 亚洲国产精品国自产拍av| 国产99久久久久久免费看农村| 亚洲精品在线网站| 国产一区在线观看麻豆| 久久夜色精品一区| 国产精品99久久久久久宅男| 久久免费视频色| 国产成人h网站| 国产精品久久久久影视| 91在线观看美女| 亚洲蜜臀av乱码久久精品蜜桃| 99精品一区二区| 一区二区在线免费观看| 欧美日韩免费一区二区三区视频| 亚洲第一激情av| 欧美一级黄色片| 国产精品一区二区不卡| 国产精品天美传媒| 色成人在线视频| 日日骚欧美日韩| 久久午夜国产精品| 成人av电影在线观看| 亚洲九九爱视频| 3atv一区二区三区| 国产麻豆视频一区| 最新中文字幕一区二区三区 | 成人午夜激情视频| 国产精品国产馆在线真实露脸| 91免费国产在线观看| 午夜天堂影视香蕉久久| 欧美电影精品一区二区| 成人污污视频在线观看| 一区二区三区日韩在线观看| 欧美一区二区久久久| 岛国精品一区二区| 亚洲资源中文字幕| 久久久电影一区二区三区|