欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      U盤枚舉(自己總結(jié))

      時間:2019-05-15 09:45:36下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《U盤枚舉(自己總結(jié))》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《U盤枚舉(自己總結(jié))》。

      第一篇:U盤枚舉(自己總結(jié))

      插入U盤

      直接拔出

      安全拔出

      A9枚舉

      Linux USB gadget設(shè)備驅(qū)動解析(2)---驅(qū)動調(diào)試 作者:劉洪濤, 華清遠(yuǎn)見嵌入式學(xué)院金牌講師。

      這一節(jié)主要把在實現(xiàn)“l(fā)inuxU盤功能”過程中的一些調(diào)試過程記錄下來,并加以解析。

      一、背景知識

      1、USB Mass Storage類規(guī)范概述

      USB 組織在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定義了海量存儲設(shè)備類(Mass Storage Class)的規(guī)范,這個類規(guī)范包括四個

      獨(dú)立的子類規(guī)范,即:

      1.USB Mass Storage Class Control/Bulk/Interrupt(CBI)Transport 2.USB Mass Storage Class Bulk-Only Transport 3.USB Mass Storage Class ATA Command Block 4.USB Mass Storage Class UFI Command Specification 前 兩個子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB 上的傳輸方法。Bulk-Only 傳輸規(guī)范僅僅使用Bulk 端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI 傳輸規(guī)范則使用Control/Bulk/Interrupt 三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個子規(guī)范則定義了存儲介質(zhì)的操作命令。ATA 命令規(guī)范用于硬盤,UFI 命令規(guī)范是針對USB 移動存儲。Microsoft Windows 中提供對Mass Storage 協(xié)議的支持,因此USB 移動設(shè)備只需要遵循 Mass Storage 協(xié)議來組織數(shù)據(jù)和處理命令,即可實現(xiàn)與PC 機(jī)交換數(shù)據(jù)。而Flash 的存儲單元組織形式采用FAT16 文件系統(tǒng),這樣,就可以直接在Windows的瀏覽器中通過可移動磁盤來交換數(shù)據(jù)了,Windows 負(fù)責(zé)對FAT16 文件系統(tǒng)的管理,USB 設(shè)備不需要干預(yù)FAT16 文件系統(tǒng)操作的具體細(xì)節(jié)。

      USB(Host)唯一通過描述符了解設(shè)備的有關(guān)信息,根據(jù)這些信息,建立起通信,在這 些描述符中,規(guī)定了設(shè)備所使用的協(xié)議、端點(diǎn)情況等。因此,正確地提供描述符,是USB 設(shè)備正常工作的先決條件。

      Linux-2.6.26內(nèi)核中在利用USB gadget驅(qū)動實現(xiàn)模擬U盤時主要涉及到file_storage.c、s3c2410_udc.c等驅(qū)動文件(這些文件的具體結(jié)構(gòu),將在下一篇文章中 描述)。此時我們想先從這些代碼中找到USB描述描述符,從中確定使用的存儲類規(guī)范,從而確定協(xié)議。確定通訊協(xié)議是我們調(diào)試的基礎(chǔ)。存儲類規(guī)范是由接口描述符決定的。接口描述符各項的定義義如下:

      其中,bInteaceClass、bInterfaceSubClass、bInterfaceProtocol可以判斷出設(shè)備是否是存儲類,以及屬于哪種存儲子類和存儲介質(zhì)的操作命令。在file_storage.c文件中,/* USB protocol value = the transport method */ #define USB_PR_CBI 0x00 // Control/Bulk/Interrupt #define USB_PR_CB 0x01 // Control/Bulk w/o interrupt #define USB_PR_BULK 0x50 // Bulk-only /* USB subclass value = the protocol encapsulation */ #define USB_SC_RBC 0x01 // Reduced Block Commands(flash)#define USB_SC_8020 0x02 // SFF-8020i, MMC-2, ATAPI(CD-ROM)#define USB_SC_QIC 0x03 // QIC-157(tape)#define USB_SC_UFI 0x04 // UFI(floppy)#define USB_SC_8070 0x05 // SFF-8070i(removable)#define USB_SC_SCSI 0x06 // Transparent SCSI 默認(rèn)的情況是:

      mod_data = { // Default values.transport_parm = “BBB”,.protocol_parm = “SCSI”, ??

      默認(rèn)的賦值如下:

      bInterfaceClass=08 表示:存儲類

      bInterfaceSubClass=0x06 表示:透明的SCSI指令 bInterfaceProtocol=0x50 表示:bulk-only 傳輸

      2、Bulk-Only 傳輸協(xié)議

      下面看看Bulk-Only 傳輸協(xié)議:(詳細(xì)的規(guī)范請閱讀《Universal Serial BusMass Storage ClassBulk-Only Transport》)

      設(shè) 備插入到USB 后,USB 即對設(shè)備進(jìn)行搜索,并要求設(shè)備提供相應(yīng)的描述符。在USBHost 得到上述描述符后,即完成了設(shè)備的配置,識別出為Bulk-Only 的Mass Storage 設(shè)備,然后即進(jìn)入Bulk-Only 傳輸方式。在此方式下,USB 與設(shè)備間的所有數(shù)據(jù)均通過Bulk-In和Bulk-Out 來進(jìn)行傳輸,不再通過控制端點(diǎn)傳輸任何數(shù)據(jù)。

      在 這種傳輸方式下,有三種類型的數(shù)據(jù)在USB 和設(shè)備之間傳送,CBW、CSW 和普通數(shù)據(jù)。CBW(Command Block Wrapper,即命令塊包)是從USB Host 發(fā)送到設(shè)備的命令,命令格式遵從接口中的bInterfaceSubClass 所指定的命令塊,這里為SCSI 傳輸命令集。USB設(shè)備需要將SCSI 命令從CBW 中提取出來,執(zhí)行相應(yīng)的命令,完成以后,向Host 發(fā)出反映 當(dāng)前命令執(zhí)行狀態(tài)的CSW(Command Status Wrapper),Host 根據(jù)CSW 來決定是否繼續(xù)發(fā) 送下一個CBW 或是數(shù)據(jù)。Host 要求USB 設(shè)備執(zhí)行的命令可能為發(fā)送數(shù)據(jù),則此時需要將 特定數(shù)據(jù)傳送出去,完畢后發(fā)出CSW,以使Host 進(jìn)行下一步的操作。USB 設(shè)備所執(zhí)行的操

      作可用下圖描述:

      CBW的格式如下:

      dCBWSignature:

      CBW的標(biāo)識,固定值:43425355h(little endian)。dCBWTag:

      主機(jī)發(fā)送的一個命令塊標(biāo)識,設(shè)備需要原樣作為dCSWTag(CSW中的一部分)再發(fā)送給Host;主要用于關(guān)聯(lián)CSW到對應(yīng)的CBW。dCBWDataTransferLength:

      本次CBW命令要求在命令與回應(yīng)之間傳輸?shù)淖止?jié)數(shù)。如果為0,則不傳輸數(shù)據(jù)。bmCBWFlags:

      反映數(shù)據(jù)傳輸?shù)姆较颍? 表示來自Host,1 表示發(fā)至Host; bCBWLUN:

      對于有多個LUN邏輯單元的設(shè)備,用來選擇具體目標(biāo)。如果沒有多個LUN,則寫0。

      bCBWCBLength:

      命令的長度,范圍在0~16.CBWCB:

      傳輸?shù)木唧w命令,符合bInterfaceSubClass.中定義的命令規(guī)范,此處是SCSI CSW命令格式如下:

      dCSWSignature:

      CSW的標(biāo)識,固定值:53425355h(little endian)dCSWTag:

      設(shè)置這個標(biāo)識和CBW中的dCBWTag一致,參照上面關(guān)于dCBWTag的解釋 dCSWDataResidue:

      還需要傳送的數(shù)據(jù),此數(shù)據(jù)根據(jù)dCBWDataTransferLength-本次已經(jīng)傳送的數(shù)據(jù)得到

      bCSWStatus:

      指示命令的執(zhí)行狀態(tài)。如果命令正確執(zhí)行,bCSWStatus 返回0 即可。

      3、SCSI指令集

      Bulk-Only 的CBW 中的CBWCB 中的內(nèi)容即為如下格式的命令塊描述符(Command Block Descriptor)。SCSI-2 有三種字長的命令,6 字節(jié)、10字節(jié)和12字節(jié),Microsoft Windows 環(huán)境下支持12 字節(jié)長的命令。

      Operation Code:

      操作代碼,表示特定的命令。高3 位為Group Code,共有8 種組合,即8 個組,低5 五位為Command Code,可以有32 種命令。Logicol unit Number:

      為了兼容SCSI-1 而設(shè)的,此處可以不必關(guān)心。Logical block address:

      為高位在前,低位在后的邏輯塊地址,即扇區(qū)地址。第2 位為高位,第3、4、5 依次為低位。

      Transfer length:

      為需要從邏輯塊地址處開始傳輸?shù)纳葏^(qū)數(shù)(比如在Write 命令中)。Parameter list length:

      為需要傳輸?shù)臄?shù)據(jù)長度(比如在Mode Sense 命令中); Allocation length:

      為初始程序為返回數(shù)據(jù)所分配的最大字節(jié)數(shù),此值可以為零,表示不需要傳送數(shù)據(jù)。

      SCSI指令集的Direct Accesss 類型存儲介質(zhì)的傳輸命令有許多,Mass Storage協(xié)議只用到了其中的一些。更多的SCSI指令參見:http://en.wikipedia.org/wiki/SCSI_command 指令代碼 指令名稱 說明

      04h Format Unit 格式化存儲單元 12h Inquiry 索取器件信息 1Bh Start/Stop load/unload 55h Mode select 允許Host對外部設(shè)備設(shè)置參數(shù)。5Ah Mode Sense 向host傳輸參數(shù) Eh Prevent/Allow Medium Removal 寫保護(hù)

      >28h Read(10)Host讀存儲介質(zhì)中的二進(jìn)制數(shù)據(jù) A8h Read(12)同上,不過比較詳細(xì)一點(diǎn) 25h Read Capacity 要求設(shè)備返回當(dāng)前容量

      23h Read Format Capacity 查詢當(dāng)前容量及可用空間 03h Request Sense 請求設(shè)備向主機(jī)返回執(zhí)行結(jié)果,及狀態(tài)數(shù)據(jù)

      01h Rexero Unit 返回零軌道 2Bh Seek(10)為設(shè)備分配到特定地址 1Dh Send Diagnostic 執(zhí)行固件復(fù)位并執(zhí)行診斷

      00h Test Unit Ready 請求設(shè)備報告是否處于Ready狀態(tài) 2Fh Verify 在存儲中驗證數(shù)據(jù)

      2Ah Write(10)從主機(jī)向介質(zhì)寫二進(jìn)制數(shù)據(jù) AAh Write(12)同上,不過比較詳細(xì) 2Eh Write and Verify 寫二進(jìn)制數(shù)據(jù)并驗證

      對于不同的命令,其命令塊描述符略有不同,其要求的返回內(nèi)容也有所不同,根據(jù)相 應(yīng)的文檔,可以對每種請求作出適當(dāng)?shù)幕貞?yīng)。比如,下面是INQUIRY 請求的命令塊描述符和其返回內(nèi)容的數(shù)據(jù)格式:如:INQUIRY 命令描述符:

      返回數(shù)據(jù)格式

      Host 會依次發(fā)出INQUIRY、Read Capacity、UFI Mode Sense 請求,如果上述請求的返回結(jié)果都正確,則Host 會發(fā)出READ 命令,讀取文件系統(tǒng)0 簇0 扇區(qū)的MBR 數(shù)據(jù),進(jìn)入文件系統(tǒng)識別階段。

      4、利用USB View觀察結(jié)果

      可通過USB View軟件查看到USB設(shè)置階段獲取到的信息。

      二、出現(xiàn)的主要問題

      在調(diào)試過程中遇到了一個問題?,F(xiàn)象是:在目標(biāo)板加載完驅(qū)動后,即執(zhí)行完: # insmod g_file_storage.ko file=“/dev/mtdblock2” stall=“0” removable=“1” 后,接好USB線。此時在windows端設(shè)備出有usb storage設(shè)備加入,但出現(xiàn)不了盤符。

      下面記錄下調(diào)試過程。

      三、調(diào)試過程

      根據(jù)規(guī)范,當(dāng)完成SCSI指令集中Inquiry 命令時,可以出現(xiàn)盤符。所以可以通過bushound軟件查看通訊過程,找出原因。下面是利用bushound工具在出現(xiàn)問題時采集到的數(shù)據(jù)。

      Dev Phase Data Info Time Cmd.Phase.Ofs------------------------------------26 CTL 80 06 00 0100 00 00 1012 03 01 02........%.......4.8ms 1.2.0 03 01..1.2.16 26 CTL 80 06 00 0201 01 04 c000 00 20 00 GET DESCRIPTR 16us 3.1.0 26 DI 09 02 20 0001 09 04 0081 02 40 0002 40 00 00 P.....@......@..3.2.16 26 CTL 80 06 00 0301 01 04 c000 00 04 00 GET DESCRIPTR 15us 5.1.0 26 DI 04 03 09 04....3.9ms 6.1.0 26 CTL 80 06 03 0309 04 1a 00 GET DESCRIPTR 18us 7.1.0 26 DI 1a 03 33 0030 00 34 0037 00 37 0000 00 00 00 SET CONFIG 16us 8.1.0 26 CTL 01 0b 00 0000 00 01 00 CLASS 62ms 10.1.0 26 DI 00.3.9ms 10.2.0 26 DO 55 53 42 4324 00 00 0000 00 00 0000 00 00...$...........11.1.16 26 DI 00 80 02 024c 69 6e 752d 53 74 6f64 67 65 74 File-Stor Gadget 12.1.16 30 33 31 32 0312 12.1.32 26 CTL 80 06 00 0201 01 04 c000 02 08 06...............4.1ms 13.2.0 50 05 07 0500 07 05 0200 00 20 00 GET DESCRIPTR 2.7sc 14.1.0 26 DI 09 02 20 0001 09 04 0081 02 40 0002 40 00 00 P.....@......@..14.2.16 26 USTS 05 00 00 c0 no response 2.8sc 15.1.0 注意上面紅色部分的代碼,DO發(fā)出了55 53 42 43開 始的CBW命令塊,命令碼是12,即Inquiry命令。要求目標(biāo)返回Inquiry命令要求的數(shù)據(jù),長度是0x24。接下來設(shè)備端通過DI返回了設(shè)備信 息。按照規(guī)范,在返回完了數(shù)據(jù)后,設(shè)備端還應(yīng)該通過DI向系統(tǒng)返回CSW的值。但實際的捕獲內(nèi)容并沒有。所以導(dǎo)致不能正確出現(xiàn)盤符。

      在file_storage.c中,發(fā)送數(shù)據(jù)時都會調(diào)用到start_transfer()函數(shù)。在此函數(shù)中加入printk調(diào)試語句,觀察現(xiàn)象。發(fā)現(xiàn)只要加入的調(diào)試語句,windows端就能夠正常設(shè)別設(shè)備了。于是,可以猜測是因為需要在連續(xù) 兩次發(fā)送之間加上一些延時。在函數(shù)中加入udelay(800)后,windows系統(tǒng)可以正常發(fā)現(xiàn)設(shè)備了。具體的代碼架構(gòu),將在下一遍文章中解析。下面是程序正常后,用bushound捕獲到的數(shù)據(jù)。

      紅色部分,可以看出設(shè)備正確的按照規(guī)范在發(fā)送完數(shù)據(jù)后,返回CSW信息。

      四、總結(jié)做好USB gadget驅(qū)動、或者USB host驅(qū)動調(diào)試需要: ·掌握一定的知識基礎(chǔ)

      包括:USB協(xié)議、具體的類設(shè)備規(guī)范、USB驅(qū)動程序架構(gòu)、USB設(shè)備端控制器操作等?!ず侠砝谜{(diào)試工具。

      包括:USB view、bushound、及一些硬件USB信號分析儀。

      一、追蹤USB大容量設(shè)備的實現(xiàn)流程

      1、從main.c開始

      (1)main函數(shù)的執(zhí)行流程

      Set_System();//設(shè)置時鐘、端口等。

      Set_USBClock();//設(shè)置usb的時鐘

      USB_Interrupts_Config();//設(shè)置中斷

      Led_Config();//設(shè)置所使用的到的燈。

      MSD_Init();//SD卡初始化

      Get_Medium_Characteristics();//獲取SD塊總數(shù)、每塊字節(jié)數(shù)。

      USB_Init();//USB_init.c提供的初始化函數(shù)。從這里開始USB設(shè)備被主機(jī)檢測到。

      while(1)

      { //USB的工作都是在中斷中完成的,主執(zhí)行流程什么也沒做。

      }

      (2)與鼠標(biāo)例程不同的地方

      在中斷配置中,使能了USB高優(yōu)先級中斷。

      NVIC_InitStructure.NVIC_IRQChannel= USB_HP_CAN_TX_IRQChannel;

      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

      NVIC_Init(&NVIC_InitStructure);

      用到了幾個燈指示,這個我的開發(fā)板上用不到,就不詳細(xì)看了。

      MSD_Init(),是對SD卡進(jìn)行初始化。該函數(shù)在msd.c中,我看了一下它的SD卡實現(xiàn)的代碼,比我的SD函數(shù)代碼齊整多了。以后有時間要把我的USB驅(qū)動好好的整理一下。不過現(xiàn)在就先不管了。

      接下來這個函數(shù)獲取SD卡的容量,這樣的函數(shù)我在SD卡驅(qū)動中也實現(xiàn)了,改變一下調(diào)用方式就行了。

      USB_Init()函數(shù)在usb_init.c庫函數(shù)中,但它最終會調(diào)用user_prop.c宏的用戶初始化例程。下面就追蹤進(jìn)去看一看。

      (3)大容量存儲設(shè)備的初始化

      void MASS_init()

      { pInformation->Current_Configuration = 0;

      PowerOn();連接電纜主機(jī)很快發(fā)總線復(fù)位。

      _SetISTR(0);

      wInterrupt_Mask = IMR_MSK;

      _SetCNTR(wInterrupt_Mask);開啟復(fù)位和傳輸中斷。

      pInformation->Current_Feature = MASS_ConfigDescriptor[7];

      while(pInformation->Current_Configuration == 0)

      {

      NOP_Process();

      }

      bDeviceState = CONFIGURED;//這句執(zhí)行完成后,設(shè)備處于已配置狀態(tài)。我先在這里加一句調(diào)試語句。

      #if usb_debug

      Uart_PutString(“設(shè)備已配置”);

      #endif

      }

      2、進(jìn)入復(fù)位中斷

      (1)先列出中斷處理代碼

      發(fā)生總線復(fù)位中斷以后,處理是在usb_prop.c的Mass_Reset()函數(shù)中完成的。

      void MASS_Reset(){

      Device_Info.Current_Configuration = 0;

      SetBTABLE(BTABLE_ADDRESS);

      SetEPType(ENDP0, EP_CONTROL);//端點(diǎn)0控制端點(diǎn)

      SetEPTxStatus(ENDP0, EP_TX_NAK);//不響應(yīng)IN

      SetEPRxAddr(ENDP0, ENDP0_RXADDR);//設(shè)置接收緩沖區(qū)(OUT)

      SetEPRxCount(ENDP0, Device_Property.MaxPacketSize);接收長度。

      SetEPTxAddr(ENDP0, ENDP0_TXADDR);//發(fā)送緩沖區(qū)(IN)

      Clear_Status_Out(ENDP0);

      SetEPRxValid(ENDP0);//使能端點(diǎn)0的接收。

      SetEPType(ENDP1, EP_BULK);//端點(diǎn)1批量模式

      SetEPTxAddr(ENDP1, ENDP1_TXADDR);//設(shè)置發(fā)送緩沖區(qū)(IN)

      SetEPTxStatus(ENDP1, EP_TX_NAK);發(fā)送不響應(yīng)。

      SetEPRxStatus(ENDP1, EP_RX_DIS);//接收無效。對OUT無效

      SetEPType(ENDP2, EP_BULK);//端點(diǎn)2批量模式

      SetEPRxAddr(ENDP2, ENDP2_RXADDR);//設(shè)置接收緩沖區(qū)OUT

      SetEPRxCount(ENDP2, Device_Property.MaxPacketSize);

      SetEPRxStatus(ENDP2, EP_RX_VALID);

      SetEPTxStatus(ENDP2, EP_TX_DIS);//發(fā)送無效,對IN無效

      SetDeviceAddress(0);//使能USB接口模塊。

      CBW.dSignature = BOT_CBW_SIGNATURE;

      Bot_State = BOT_IDLE;//命令狀態(tài)機(jī)初始化為空閑狀態(tài)

      }

      在這里沒有我沒有看到將批量端點(diǎn)設(shè)置為雙緩沖模式的跡象,難道這個例程沒有用它?

      3、進(jìn)入枚舉過程

      因為在鼠標(biāo)例程中已經(jīng)詳細(xì)分析過枚舉過程,這里主要是大容量設(shè)備枚舉過程中不同的地方做一下分析。

      (1)獲取設(shè)備描述符、設(shè)置地址。

      (2)獲取配置描述符

      (3)獲取配置描述符集合,這里主要講接口描述符分析一下。

      0x09, /* bLength: Interface Descriptor size */

      0x04, /* bDescriptorType: */

      0x00, /* bInterfaceNumber: Number of Interface */

      0x00, /* bAlternateSetting: Alternate setting */

      0x02, /* bNumEndpoints*/ 使用兩個端點(diǎn)

      0x08, /* bInterfaceClass: MASS STORAGE Class,大容量存儲類 */

      0x06, /* bInterfaceSubClass : SCSI transparent,SCSI傳輸*/

      0x50, /* nInterfaceProtocol,僅批量傳輸*/ 4, /* iInterface: */

      (4)獲取字符串描述符

      (5)類請求實現(xiàn):

      類獲取邏輯盤:

      一般返回0

      類請求復(fù)位:

      ClearDTOG_TX(ENDP1);

      ClearDTOG_RX(ENDP2);

      CBW.dSignature = BOT_CBW_SIGNATURE;

      Bot_State = BOT_IDLE;

      (6)設(shè)置配置

      在用戶設(shè)置的回調(diào)函數(shù)中,又調(diào)用

      void Mass_Storage_SetConfiguration(void)

      {

      if(pInformation->Current_Configuration)

      {

      ClearDTOG_TX(ENDP1);

      ClearDTOG_RX(ENDP2);

      Bot_State = BOT_IDLE;}

      } 這個工作前面已經(jīng)做過了。

      4、主機(jī)發(fā)命令I(lǐng)NQUIRY

      (1)首先進(jìn)入批量輸出中斷

      該中斷的回調(diào)函數(shù)調(diào)用Mass_Storage_Out()進(jìn)行處理。

      (2)追蹤進(jìn)入Mass_Storage_Out()

      void Mass_Storage_Out(void)

      {

      u8 CMD;

      CMD = CBW.CB[0];//

      Data_Len = GetEPRxCount(ENDP2);

      PMAToUserBufferCopy(Bulk_Data_Buff,ENDP2_RXADDR, Data_Len);

      switch(Bot_State)

      {

      case BOT_IDLE:

      CBW_Decode();//第一次收到命令肯定調(diào)用這個解碼函數(shù)。

      break;//它的作用應(yīng)該是填充CBW命令塊封包結(jié)構(gòu)

      case BOT_DATA_OUT:

      if(CMD == SCSI_WRITE10)

      {

      SCSI_Write10_Cmd();

      break;

      }

      }

      (3)追蹤進(jìn)入CBW_Decode()

      這個函數(shù)的代碼較長,我就不列舉在這里了,我就分析一下本次的主要工作。

      首先將用戶緩沖區(qū)的數(shù)據(jù)復(fù)制到命令封包結(jié)構(gòu)里面。

      然后準(zhǔn)備好狀態(tài)封包結(jié)構(gòu):

      CSW.dTag = CBW.dTag;//這個標(biāo)志由主機(jī)生成,可以用于檢查設(shè)備是否正確收到該命令。

      CSW.dDataResidue = CBW.dDataLength;

      然后主要是根據(jù)命令操作碼,調(diào)用相應(yīng)的SCSI命令處理函數(shù)。

      switch(CBW.CB[0])

      {

      case SCSI_REQUEST_SENSE:

      SCSI_RequestSense_Cmd();

      break;

      case SCSI_INQUIRY:

      SCSI_Inquiry_Cmd();

      break;

      我這里就列出了兩項,實際的命令是很多的。本次主要是查詢處理。

      (4)追蹤進(jìn)入SCSI_Inquiry_Cmd()

      以上函數(shù)是在usb_bot.c里面,現(xiàn)在跳轉(zhuǎn)到usb_scsi.c里面。

      這個函數(shù)的主要工作是調(diào)用Transfer_Data_Request(Inquiry_Data, Inquiry_Data_Length)來完成。

      這個Inquiry_Data = Standard_Inquiry_Data,后面這個Standard_Inquiry_Data是scsi_data.c里面定義的一個數(shù)據(jù)結(jié)構(gòu),專門用于inquiry命令的返回。

      u8 Standard_Inquiry_Data[] =

      {

      0x00, /* Direct Access Device */

      0x80, /* RMB = 1: Removable Medium */

      0x02, /* Version: No conformance claim to standard */

      0x02, //這里圈圈的書上說應(yīng)該為 0x01

      36BULK_MAX_PACKET_SIZE;

      Block_offset = BULK_MAX_PACKET_SIZE;

      }

      else

      {

      UserToPMABufferCopy(Data_Buffer + Block_offset, ENDP1_TXADDR, BULK_MAX_PACKET_SIZE);

      Block_Read_count-= BULK_MAX_PACKET_SIZE;

      Block_offset += BULK_MAX_PACKET_SIZE;

      }

      SetEPTxCount(ENDP1, BULK_MAX_PACKET_SIZE);SetEPTxStatus(ENDP1, EP_TX_VALID);

      Memory_Offset += BULK_MAX_PACKET_SIZE;

      Transfer_Length-= BULK_MAX_PACKET_SIZE;//剩下的需要傳輸?shù)淖止?jié)數(shù)。

      CSW.dDataResidue-= BULK_MAX_PACKET_SIZE;

      Led_RW_ON();

      }

      這里不清楚的是主機(jī)是一次把512字節(jié)讀完,還是每次發(fā)一個命令讀取64字節(jié)。我覺得應(yīng)該是發(fā)一次讀命令,8次“IN”讀取一個扇區(qū),再發(fā)一個“IN”讀取命令狀態(tài)封包。

      8、寫命令WRITE(10)

      這個命令的處理過程跟讀命令的處理差不多,只是最后它會調(diào)用Write_Memory()進(jìn)行處理。

      i = 0;

      for(;Counter < temp;Counter++)

      {

      Data_Buffer[Counter] = Bulk_Data_Buff[i];

      i++;

      }

      從接受緩沖區(qū)得到的數(shù)據(jù)總是先放到用戶緩沖區(qū),這個緩沖區(qū)有512個字節(jié)。

      if(!(Transfer_Length % 512))

      {

      Counter = 0;

      MSD_WriteBlock(Data_Buffer, Memory_OffsetInquiry之后會發(fā)出ReadFormatCapacity命令,這個命令在SCSI規(guī)范中是“廠家自定義命令”,可以參考UFI命令集文檔(實際上,U盤所使用的所有SCSI命令集都可以參考UFI文檔,它比SCSI標(biāo)準(zhǔn)文檔更簡潔明了)。注意這個命令在BusHound里是沒有描述的,必須在“Device”選項頁里勾選上這個U盤所對應(yīng)的USB Mass Storage Device這個節(jié)點(diǎn),才能看到這個命令的數(shù)據(jù)流。

      -ReadFormatCapacity之后會發(fā)出ReadCapacity命令。

      -U盤讀數(shù)據(jù)(讀扇區(qū))時會發(fā)送Read(10)。ReadCapacity完成后就會發(fā)送Read(10)讀取U盤的第一個扇區(qū)。

      -U盤寫數(shù)據(jù)時(寫扇區(qū))會發(fā)送Write(10)。

      -TestUnitReady會在無其他數(shù)據(jù)傳輸時會定時發(fā)送,如果設(shè)備沒有回應(yīng)成功的CSW給主機(jī),則主機(jī)認(rèn)為設(shè)備已不存在。此時如果再雙擊磁盤圖標(biāo),Windows會提示“請插入磁盤”。RequestSense:如果CSW指示此次傳輸不成功,那么主機(jī)會發(fā)出此請求。ModeSense6/10這兩個命令可以不支持(不支持不代表不反應(yīng),任何一個命令你都要做出反應(yīng),對于不支持的命令,可以通過STALL握手來向主機(jī)表明),暫時也未遇到過什么異常情況,而且我查看過一些U盤,有相當(dāng)一部分就是隨便回了幾個數(shù)據(jù)給主機(jī)。這兩個命令只會在U盤插入后發(fā)送一次,此后不再發(fā)送。

      U盤開發(fā)的幾點(diǎn)體會

      如果你開發(fā)過USB相關(guān)項目,理解USB的一些基本概念,例如設(shè)備描述符、配置描述符、子類規(guī)范等,那么開發(fā)U盤只要概念清晰應(yīng)該不難。以下是我開發(fā)過程中的幾個相關(guān)步驟:

      ? ? ? ? ? ? ? 保證USB 芯片正常工作,用其他USB成功項目驗證硬件連接及固件的正確性

      按Mass Storage協(xié)議 Bulk-Only 模式提供描述符,使PC 機(jī)控制面板上設(shè)備類型出現(xiàn)Mass Storage Device 響應(yīng)SCSI指令集中Inquiry 命令,可以出現(xiàn)盤符 實現(xiàn)FAT16文件系統(tǒng)

      處理SCSI命令集中READ命令及其他UFI命令,可以訪問盤符 處理SCSI命令集中WRITE命令 U盤開發(fā)成功

      開發(fā)U盤有三個工具軟件應(yīng)該必備:USBVIEW 察看設(shè)備描述符,端點(diǎn)測試等;BUSHOUND 截取USB總線數(shù)據(jù),可分析UFI命令及U盤返回的數(shù)據(jù)流;串口助手可實時了解U盤所收命令流及程序流程由于每個人知識面不同,我想實現(xiàn)上面的幾個步驟遇到的問題也不一樣。對我最大的困惑是實現(xiàn)FAT16文件系統(tǒng),直到在微軟網(wǎng)站找到它的白皮書才算解惑。這里簡介一下方便大家有的放矢。USB 組織定義了海量存儲設(shè)備類(Mass Storage Class)的規(guī)范,這個類規(guī)范包括四個獨(dú)立的子類規(guī)范,即:

      1.USB Mass Storage Class Control/Bulk/Interrupt(CBI)Transport 2.USBMass Storage Class Bulk-Only Transport 3.USB Mass Storage Class ATA Command Block 4.USB Mass Storage Class UFI Command Specification。

      前兩個子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB 上的傳輸方法。Bulk-Only 傳輸規(guī)范僅僅使用Bulk 端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI 傳輸規(guī)范則使用Control/Bulk/Interrupt三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個子規(guī)范則定義了存儲介質(zhì)的操作命令。ATA 命令規(guī)范用于硬盤,UFI 命令規(guī)范是針對USB 移動存儲。

      Windows95 OSR2和Windows 98開始支持FAT32 文件系統(tǒng),它是對早期DOS的FAT16文件系統(tǒng)的增強(qiáng),由于文件系統(tǒng)的核心--文件分配表FAT由16位擴(kuò)充為32位,所以稱為FAT32文件系統(tǒng)。在一邏輯盤(硬盤的一分區(qū))超過 512 兆字節(jié)時使用這種格式,會更高效地存儲數(shù)據(jù),減少硬盤空間的浪費(fèi),一般還會使程序運(yùn)行加快,使用的計算機(jī)系統(tǒng)資源更少,因此是使用大容量硬盤存儲文件的極有效的系統(tǒng)。本人對Windows 98下的FAT32 文件系統(tǒng)做了分析實驗,總體上與FAT16文件系統(tǒng)變化不大,現(xiàn)將有關(guān)變化部分簡介如下:

      (一)FAT32 文件系統(tǒng)將邏輯盤的空間劃分為三部分,依次是引導(dǎo)區(qū)(BOOT區(qū))、文件分配表區(qū)(FAT區(qū))、數(shù)據(jù)區(qū)(DATA區(qū))。引導(dǎo)區(qū)和文件分配表區(qū)又合稱為系統(tǒng)區(qū)。

      (二)引導(dǎo)區(qū)從第一扇區(qū)開始,使用了三個扇區(qū),保存了該邏輯盤每扇區(qū)字節(jié)數(shù),每簇對應(yīng)的扇區(qū)數(shù)等等重要參數(shù)和引導(dǎo)記錄。之后還留有若干保留扇區(qū)。而FAT16文件系統(tǒng)的引導(dǎo)區(qū)只占用一個扇區(qū),沒有保留扇區(qū)。

      (三)文件分配表區(qū)共保存了兩個相同的文件分配表,因為文件所占用的存儲空間(簇鏈)及空閑空間的管理都是通過FAT實現(xiàn)的,F(xiàn)AT如此重要,保存兩個以便第一個損壞時,還有第二個可用。文件系統(tǒng)對數(shù)據(jù)區(qū)的存儲空間是按簇進(jìn)行劃分和管理的,簇是空間分配和回收的基本單位,即,一個文件總是占用若干個整簇,文件所使用的最后一簇剩余的空間就不再使用,而是浪費(fèi)掉了。

      從統(tǒng)計學(xué)上講,平均每個文件浪費(fèi)0.5簇的空間,簇越大,存儲文件時空間浪費(fèi)越多,利用率越低。因此,簇的大小決定了該盤數(shù)據(jù)區(qū)的利用率。FAT16系統(tǒng)簇號用16位二進(jìn)制數(shù)表示,從0002H到FFEFH個可用簇號(FFF0H到FFFFH另有定義,用來表示壞簇,文件結(jié)束簇等),允許每一邏輯盤的數(shù)據(jù)區(qū)最多不超過FFEDH(65518)個簇。FAT32系統(tǒng)簇號改用32位二進(jìn)制數(shù)表示,大致從00000002H到FFFFFEFFH個可用簇號。FAT表按順序依次記錄了該盤各簇的使用情況,是一種位示圖法。每簇的使用情況用32位二進(jìn)制填寫,未被分配的簇相應(yīng)位置寫零;壞簇相應(yīng)位置填入特定值;已分配的簇相應(yīng)位置填入非零值,具體為:如果該簇是文件的最后一簇,填入的值為FFFFFF0FH,如果該簇不是文件的最后一簇,填入的值為該文件占用的下一個簇的簇號,這樣,正好將文件占用的各簇構(gòu)成一個簇鏈,保存在FAT表中。0000000H、00000001H兩簇號不使用,其對應(yīng)的兩個DWORD位置(FAT表開頭的8個字節(jié))用來存放該盤介質(zhì)類型編號。FAT表的大小就由該邏輯盤數(shù)據(jù)區(qū)共有多少簇所決定,取整數(shù)個扇區(qū)。

      (四)FAT32系統(tǒng)一簇對應(yīng)8個邏輯相鄰的扇區(qū),理論上,這種用法所能管理的邏輯盤容量上限為16TB(16384GB),容量大于16TB時,可以用一簇對應(yīng)16個扇區(qū),依此類推。FAT16系統(tǒng)在邏輯盤容量介于128MB到256MB時,一簇對應(yīng)8個扇區(qū),容量介于256MB到512MB時,一簇對應(yīng)16個扇區(qū),容量介于512MB到1GB時,一簇對應(yīng)32個扇區(qū),容量介于1GB到2GB時,一簇對應(yīng)32個扇區(qū),超出2GB的部分無法使用。顯然,對于容量大于512MB的邏輯盤,采用FAT32的簇比采用FAT16的簇小很多,大大減少了空間的浪費(fèi)。

      但是,對于容量小于512MB的盤,采用FAT32雖然一簇8個扇區(qū),比使用FAT16一簇16個扇區(qū),簇有所減小,但FAT32的FAT表較大,占用空間較多,總數(shù)據(jù)區(qū)被減少,兩者相抵,實際并不能增加有效存儲空間,所以微軟建議對小于512M的邏輯盤不使用FAT32。

      另外,對于使用FAT16文件系統(tǒng)的用戶提一建議,硬盤分區(qū)時,不要將分區(qū)(邏輯盤)容量正好設(shè)為某一區(qū)間的下限,例:將一邏輯盤容量設(shè)為1100M(稍大于1024M),則使用時其有效存儲容量比分區(qū)為950M的一般還少,因其簇大一倍,浪費(fèi)的空間較多。還有,使用FDISK等對分區(qū)指定容量時,由于對1MB的定義不一樣(標(biāo)準(zhǔn)的二進(jìn)制的1MB為1048576B,有的系統(tǒng)將1MB理解為1000000B,1000KB等),及每個分區(qū)需從新磁道開始等因素,實際分配的容量可能稍大于指定的容量,亦需注意掌握。

      (五)根目錄區(qū)(ROOT區(qū))不再是固定區(qū)域、固定大小,可看作是數(shù)據(jù)區(qū)的一部分。因為根目錄已改為根目錄文件,采用與子目錄文件相同的管理方式,一般情況下從第二簇開始使用,大小視需要增加,因此根目錄下的文件數(shù)目不再受最多512的限制。FAT16文件系統(tǒng)的根目錄區(qū)(ROOT區(qū))是固定區(qū)域、固定大小的,是從FAT區(qū)之后緊接著的32個扇區(qū),最多保存512個目錄項,作為系統(tǒng)區(qū)的一部分。

      (六)目錄區(qū)中的目錄項變化較多,一個目錄項仍占32字節(jié),可以是文件目錄項、子目錄項、卷標(biāo)項(僅跟目錄有)、已刪除目錄項、長文件名目錄項等。目錄項中原來在DOS下保留未用的10個字節(jié)都有了新的定義,全部32字節(jié)的定義如下:

      (1)0--7字節(jié) 文件正名。(2)8--10字節(jié) 文件擴(kuò)展名。

      (3)11字節(jié) 文件屬性,按二進(jìn)制位定義,最高兩位保留未用,0至5位分別是只讀位、隱藏位、系統(tǒng)位、卷標(biāo)位、子目錄位、歸檔位。

      (4)12--13字節(jié) 僅長文件名目錄項用,用來存儲其對應(yīng)的短文件名目錄項的文件名字節(jié)校驗和等。(5)14--15字節(jié) 24位二進(jìn)制的文件建立時間,其中的高5位為小時,次6位為分鐘。

      (6)16--17字節(jié) 16位二進(jìn)制的文件建立日期,其中的高7位為相對于1980年的年份值,次4位為月份,后5位為月內(nèi)日期。

      (7)18--19字節(jié) 16位二進(jìn)制的文件最新訪問日期,定義同(6)。(8)20--21字節(jié) 起始簇號的高16位。

      (9)22--23字節(jié) 16位二進(jìn)制的文件最新修改時間,其中的高5位為小時,次6位為分鐘,后5位的二倍為秒數(shù)。

      (10)24--25字節(jié) 16位二進(jìn)制的文件最新修改日期,定義同(6)。(11)26--27字節(jié) 起始簇號的低16位。(12)28--31字節(jié) 32位的文件字節(jié)長度。

      其中第(4)至(8)項為以后陸續(xù)定義的。對于子目錄項,其(12)為零;已刪除目錄項的首字節(jié)值為E5H。在可以使用長文件名的FAT32系統(tǒng)中,文件目錄項保存該文件的短文件名,長文件名用若干個長文件名目錄項保存,長文件名目錄項倒序排在文件短目錄項前面,全部是采用雙字節(jié)內(nèi)碼保存的,每一項最多保存十三個字符內(nèi)碼,首字節(jié)指明是長文件名的第幾項,11字節(jié)一般為0FH,12字節(jié)指明類型,13字節(jié)為校驗和,26--27字節(jié)為零。

      (七)以前版本的 Windows 和DOS與 FAT32 不兼容,不能識別FAT32分區(qū),有些程序也依賴于 FAT16文件系統(tǒng),不能和 FAT32 驅(qū)動器一道工作。將硬盤轉(zhuǎn)換為 FAT32,就不能再用雙引導(dǎo)運(yùn)行以前版本的Windows(Windows 95 [Version 4.00.950]、Windows NT 3.x、Windows NT 4.0 和 Windows 3.x)。

      磁盤結(jié)構(gòu)綜述 1.硬盤結(jié)構(gòu)

      硬盤的內(nèi)部是由圓形金屬片堆疊起來的,每個盤片的兩面都有一個磁頭(Head)負(fù)責(zé)讀寫這個磁面(Side),在每個磁面上劃分了一圈一圈的同心圓,叫做柱面(Cylinder)對于軟盤通常稱之為磁道,在每個柱面中又劃分了若干段,稱之為扇區(qū)(Sector)。由于技術(shù)的發(fā)展,硬盤的密度越來越大,使得硬盤的實際盤片數(shù)越來越少,對磁盤操作的柱面、磁頭、扇區(qū)被硬盤控制器內(nèi)部轉(zhuǎn)換,已經(jīng)不是實際的柱面、磁頭、扇區(qū)了。由于最早時磁盤存取系統(tǒng)估計不足,傳輸數(shù)據(jù)時只給扇區(qū)留了6位,柱面留了10位,磁頭留了8位。也就是說,柱面最大只能為1023。但是大硬盤的柱面遠(yuǎn)大于這個數(shù),所以后來就采用將柱面數(shù)減少,將磁頭數(shù)增加的方式來滿足磁盤尋址的要求,對于實際地址的轉(zhuǎn)換在BIOS中進(jìn)行,這叫邏輯塊尋址方式(Logical Block Addressing,LBA)硬盤中有關(guān)柱面、磁頭、扇區(qū)的數(shù)據(jù)都是以此為基準(zhǔn)的。

      第二篇:《枚舉算法》教學(xué)設(shè)計

      《枚舉算法》教學(xué)設(shè)計

      蒼南縣成人教育中心學(xué)校 陳榮軍

      一、教學(xué)目標(biāo)

      1、知識與技能目標(biāo):

      理解枚舉算法的基本原理,熟悉枚舉算法程序設(shè)計的基本思路及程序結(jié)構(gòu)特點(diǎn);學(xué)會使用枚舉算法解決現(xiàn)實生活、學(xué)習(xí)中所遇到的問題。

      2、過程與方法:

      圍繞“課堂任務(wù)導(dǎo)航程序”,通過課堂任務(wù)設(shè)計,讓學(xué)生熟悉用枚舉算法求解問題的基本過程,并把它運(yùn)用到實際生活中去解決問題,學(xué)會選擇適當(dāng)?shù)拿杜e方法多角度分析問題,解決問題。

      3、情感態(tài)度與價值觀:

      激發(fā)學(xué)生的學(xué)習(xí)熱情,提高學(xué)生自主學(xué)習(xí)能力,增強(qiáng)學(xué)生創(chuàng)新意識;引導(dǎo)學(xué)生關(guān)注枚舉算法在社會生活中的應(yīng)用,并以此培養(yǎng)學(xué)生將算法思想運(yùn)用到解決實際問題中去的能力。

      二、學(xué)情分析

      本節(jié)內(nèi)容的教學(xué)對象是普通高中高一學(xué)生,他們經(jīng)過半學(xué)期的信息技術(shù)教學(xué),具備了一定的計算機(jī)操作能力;在VB程序設(shè)計方面,也已經(jīng)有所學(xué)習(xí),具備一定的基礎(chǔ),但因所上課時不多,學(xué)生對VB還只是略知皮毛,語法及編程能力有待于進(jìn)一步提高。

      三、教材分析

      1、本節(jié)主要內(nèi)容介紹

      枚舉算法是程序設(shè)計中使用最為普遍、學(xué)生必須熟練掌握和正確運(yùn)用的一種算法。它利用計算機(jī)運(yùn)算速度快、精確度高的特點(diǎn),對要解決問題的所有可能情況,一個不漏地進(jìn)行檢查,從中找出符合要求的答案。用枚舉算法解決問題,通??梢詮拇_定范圍、逐一列舉,驗證條件、逐一驗證這兩個方面進(jìn)行分析,把這兩個方面分析好了,問題自然會迎刃而解。

      2、重點(diǎn)難點(diǎn)分析 教學(xué)重點(diǎn):

      (1)理解枚舉算法的基本原理。

      (2)能根據(jù)問題描述確定枚舉范圍,并能用程序正確表示驗證條件。(3)枚舉算法的程序?qū)崿F(xiàn)。教學(xué)難點(diǎn):

      (1)各種枚舉算法的優(yōu)劣評價。(2)編程實現(xiàn)枚舉算法。

      四、教學(xué)設(shè)計理念 采用了以學(xué)生的學(xué)習(xí)和發(fā)展為中心,基于建構(gòu)主義理論的任務(wù)驅(qū)動、情境教學(xué)等教學(xué)方法,突出自主、合作、探究等學(xué)習(xí)方法;強(qiáng)調(diào)信息技術(shù)與生活實際的聯(lián)系,培養(yǎng)學(xué)生的邏輯思維能力、解決問題的能力以及創(chuàng)新意識等;設(shè)置多元化的評價方式,讓學(xué)生掌握學(xué)習(xí)內(nèi)容的同時,形成交流與評價的能力。

      主要教學(xué)方法:講授法、演示法、任務(wù)驅(qū)動、情境教學(xué)等 主要學(xué)習(xí)方法:自主學(xué)習(xí),合作探究學(xué)習(xí)等

      五、教學(xué)策略

      通過“課堂任務(wù)導(dǎo)航程序”,在教學(xué)過程中,圍繞“情境導(dǎo)入→回顧算法思想→任務(wù)引領(lǐng)→自主學(xué)習(xí)→合作探究→交流評價→課堂總結(jié)”的教學(xué)流程來展開教學(xué)活動。

      六、教學(xué)環(huán)境

      教師用VB自制的“課堂任務(wù)導(dǎo)航程序”(客戶端)、教師服務(wù)端程序、多媒體網(wǎng)絡(luò)教室、多媒體教學(xué)軟件、VB6.0中文企業(yè)版等。

      七、教學(xué)過程

      一、情境導(dǎo)入(3分鐘)

      教師活動:同學(xué)們,大家好!首先,很高興今天能給大家上一節(jié)課,希望老師今天的這節(jié)課能讓大家有所收獲。在上新課內(nèi)容之前,老師想先請同學(xué)們幫老師一個忙(教師廣播展示VB制作的“QQ登錄程序”):老師前段時間申請了個QQ,結(jié)果把密碼給忘記了,但我記得密碼是由六位相同的數(shù)字組成,哪位同學(xué)能上來幫老師找出密碼?

      學(xué)生活動:學(xué)生上臺,根據(jù)老師的描述,從000000到999999一一測試密碼,最終找到密碼。教師活動:非常感謝這位同學(xué)的幫忙!這位同學(xué)能說下,你是怎么找出密碼的嗎? 學(xué)生活動:從000000,111111,222222?? 999999這樣逐個測試。教師活動:很好。像剛才這位同學(xué)這樣,根據(jù)老師給的范圍,逐一列舉所有可能,并根據(jù)程序提示(驗證條件)逐一驗證,從而找出答案的方法就是今天我們要來共同學(xué)習(xí)的《枚舉算法》。

      設(shè)計理念:通過學(xué)生熟悉的QQ密碼破解來引入課堂,增強(qiáng)學(xué)生興趣,也能使學(xué)生樂于接受。

      二、回顧枚舉算法思想,提出課堂任務(wù)(5分鐘)

      教師活動:教師廣播展示課件,學(xué)習(xí)枚舉算法的概念,說明枚舉算法的兩個關(guān)鍵點(diǎn):

      1、確定范圍,一一列舉(既不遺漏,也不多余);

      2、確定條件,逐一驗證。教師活動:在了解了枚舉算法的概念后,同學(xué)們能不能列舉幾個我們實際生活中用枚舉算法解決的問題的例子呢? 學(xué)生活動:學(xué)生舉例(教師根據(jù)例子引導(dǎo)分析,重點(diǎn)強(qiáng)調(diào)“確定范圍、一一列舉,根據(jù)條件、逐一驗證”)

      教師活動:非常好!看來大家對枚舉算法已經(jīng)有了一定的理解了,接下來,我們來看下在程序里面,如何實現(xiàn)枚舉算法解決問題。請大家打開桌面“學(xué)生”文件夾里的“課堂任務(wù)導(dǎo)航.exe”,完成“任務(wù)一”。(教師簡要說明“課堂任務(wù)導(dǎo)航程序“使用方法)

      三、課堂任務(wù)一(10分鐘)

      學(xué)生活動:根據(jù)課堂任務(wù)導(dǎo)航程序及幫助信息自主完成課堂“任務(wù)一”(4分鐘)教師活動:教師巡視、個別指導(dǎo),觀察、總結(jié)并及時記錄學(xué)生在完成任務(wù)過程中出現(xiàn)的問題。同時,在“教師服務(wù)端”程序中觀察展示學(xué)生任務(wù)一的完成情況,及時了解學(xué)生的學(xué)習(xí)進(jìn)度。

      任務(wù)反饋:大部分學(xué)生能順利完成任務(wù)一,對于不能自主完成的,可由已完成學(xué)生幫助完成。

      教師活動:很好!大部分同學(xué)已經(jīng)完成任務(wù)一了,接下來讓我們一起看下我們的程序是如何實現(xiàn)枚舉算法的。教師展示任務(wù)一程序(廣播)教師活動:我們知道要想實現(xiàn)枚舉算法,主要是要做到兩點(diǎn):一個是確定枚舉范圍進(jìn)行一一列舉;還有就是根據(jù)條件,逐一驗證。我們來看下我們的程序的怎么實現(xiàn)這兩點(diǎn)的?

      學(xué)生活動:觀察程序,思考。

      教師活動:我們先來看下“確定范圍、一一列舉”在程序里是如何體現(xiàn)的?(6分鐘)

      學(xué)生活動:使用for語句實現(xiàn)

      教師活動:“根據(jù)條件,逐一驗證”呢? 學(xué)生活動:if語句

      教師活動:很好!一般實現(xiàn)枚舉算法的程序都是由循環(huán)結(jié)構(gòu)嵌套分支結(jié)構(gòu)組成。好了,大家現(xiàn)在已經(jīng)知道了枚舉算法的程序結(jié)構(gòu)了,接下來請同學(xué)們繼續(xù)完成任務(wù)二。

      (設(shè)計理念:通過任務(wù)一的設(shè)計,讓學(xué)生自主探究學(xué)習(xí),培養(yǎng)學(xué)生的自主探究學(xué)習(xí)能力,通過學(xué)生互助,培養(yǎng)學(xué)生互幫互助的精神;通過對任務(wù)一的程序分析,培養(yǎng)學(xué)生的善于觀察思考、解決問題的能力,并讓學(xué)生熟悉枚舉算法的程序結(jié)構(gòu)特點(diǎn),以便學(xué)生能更加順利的完成任務(wù)二。)

      四、課堂任務(wù)二(設(shè)置陷阱,探討交流)(15分鐘)學(xué)生活動:學(xué)生先自主完成任務(wù)二。(5分鐘)

      教師活動:教師巡視、個別指導(dǎo),觀察學(xué)生在完成任務(wù)過程中出現(xiàn)的問題:有些學(xué)生能輸出58個數(shù),有些學(xué)生只輸出6個數(shù),原因在哪里?請一個能輸出58個數(shù)的學(xué)生上臺演示操作,然后讓學(xué)生分析輸出的這些數(shù)都能滿足要求嗎?經(jīng)過分析,學(xué)生會發(fā)現(xiàn)有些數(shù)的個位數(shù)不符合要求。提出問題:如何修改程序?qū)⒉环弦蟮臄?shù)去掉?(2分鐘)

      學(xué)生活動:修改程序(由學(xué)生小組合作相互探討完成)。(5分鐘)教師活動:當(dāng)有部分學(xué)生輸出正確答案后,請一個能輸出正確結(jié)果的學(xué)生分析如何修改,并到教師機(jī)上修改剛才錯誤的程序(算法1); 請一個不同算法的同學(xué)來修改程序(算法2);讓他們分析各自算法的效率誰更高。然后教師小結(jié),鼓勵學(xué)生要善于發(fā)現(xiàn)問題、深入分析問題、積極解決問題;從不同角度分析問題可以得到不同效率的算法。(3分鐘)

      (設(shè)計理念:設(shè)計任務(wù)陷阱培養(yǎng)學(xué)生善于發(fā)現(xiàn)問題、深入分析問題、積極解決問題的能力;通過探討交流,培養(yǎng)學(xué)生的團(tuán)體協(xié)作能力及合作探究精神;設(shè)計任務(wù)一題多解,培養(yǎng)學(xué)生從不同角度分析問題的能力,鍛煉學(xué)生的發(fā)散性思維。通過算法分析,讓學(xué)生理解算法的執(zhí)行效率,懂得選擇最優(yōu)算法去解決問題,提高程序的性能。)

      五、層層遞進(jìn),任務(wù)拓展(高層次學(xué)生做)

      拓展任務(wù):在任務(wù)二的基礎(chǔ)上,增加驗證條件:“十位數(shù)是3的倍數(shù),百位數(shù)是4的倍數(shù)”,提出問題:如何將數(shù)字里的十位數(shù)和百位數(shù)分離?

      學(xué)生活動:學(xué)生通過教師提供的幫助材料,討論分析問題,嘗試去完成拓展任務(wù) 教師活動:教師觀察,引導(dǎo)。

      (設(shè)計理念:設(shè)計拓展任務(wù),提高任務(wù)難度梯度,供高層次學(xué)生完成,以實施課堂中的分層教學(xué)。)

      六、提交作品,課堂評價(3分鐘)

      學(xué)生提交作品,教師選擇幾個作品做總結(jié)性評價。

      七、歸納總結(jié)、布置課后作業(yè)(1分鐘)

      1、通過“教師服務(wù)端”程序中學(xué)生“自我評價”中的知識點(diǎn),進(jìn)行課堂總結(jié):(1)枚舉算法的基本原理:

      確定范圍、逐一列舉(既不遺漏,也不多余)(循環(huán)語句)確定條件、逐一驗證

      (條件語句)

      (2)枚舉算法中范圍的確定及列舉:循環(huán)語句(如for)實現(xiàn)

      (3)枚舉算法中驗證條件的表示:利用if語句進(jìn)行條件判斷;條件表示主要運(yùn)用VB中的算數(shù)運(yùn)算符及邏輯運(yùn)算符實現(xiàn)。(4)實現(xiàn)枚舉算法的程序結(jié)構(gòu)特點(diǎn):

      外層循環(huán)嵌套內(nèi)層條件判斷

      2、布置課后作業(yè): 找水仙花數(shù)(學(xué)生任務(wù)導(dǎo)航程序)

      (設(shè)計理念:通過知識總結(jié),幫助學(xué)生將知識系統(tǒng)化,便于學(xué)生理解記憶。通過知識的延伸,促使學(xué)生將知識內(nèi)化,并進(jìn)行能力遷移,進(jìn)一步提高學(xué)生解決問題的能力。)

      八、自我評價(1分鐘)

      讓學(xué)生利用“課堂任務(wù)導(dǎo)航程序”中的自我評價功能進(jìn)行自我評價。教師活動:展示學(xué)生自評結(jié)果。

      (設(shè)計理念:通過評價,引導(dǎo)學(xué)生自我反思,加深對所學(xué)知識的認(rèn)識與理解;教師查看學(xué)生自我評價結(jié)果能及時了解到學(xué)生對本堂課所學(xué)知識點(diǎn)的掌握情況,以便安排后續(xù)教學(xué)內(nèi)容。)

      第三篇:簡單枚舉個性化教案

      大愚教育中小學(xué)個性化學(xué)習(xí)中心

      簡單枚舉

      專題解析:

      枚舉是一種常見的分析問題、解決問題的方法。一般地,要根據(jù)問題要求,一一列舉問題解答。運(yùn)用枚舉法解應(yīng)用題時,必須注意無重復(fù)、無遺漏,因此必須有次序、有規(guī)律地進(jìn)行枚舉。運(yùn)用枚舉法解題的關(guān)鍵是要正確分類,要注意以下兩點(diǎn):一是分類要全,不能造成遺漏;二是枚舉要清,要將每一個符合條件的對象都列舉出來。

      例1.小華家到學(xué)校有3條路可走,從學(xué)校到文峰公園有4條路可走。從小華家到文峰公園,有幾種不同的走法?

      分析與解答:為了幫助理解題意,我們可以畫出如上示意圖。

      我們把小華的不同走法一一列舉如下:根據(jù)列舉可知,從小明家經(jīng)學(xué)校到文峰公園,走①路有4種不同走法,走②路有4種不同走法,走③路也有4種不同走法,共有4×3=12種不同走法。

      練習(xí)一

      1.從甲地到乙地,有3條公路直達(dá),從乙地到丙地有2條鐵路直達(dá)。從甲地到丙地有多少種不同走法?

      2.新華書店有3種不同的英語書,4種不同的數(shù)學(xué)讀物銷售。小明想買一種英語書和一種數(shù)學(xué)讀物,共有多少種不同買法?

      例2.用紅、綠、黃三種信號燈組成一種信號,可以組成多少種不同的信號?

      分析與解答:要使信號不同,要求每一種信號顏色的順序不同,我們可以把這些信號進(jìn)行列舉??梢钥闯?,紅色信號燈排在第一個位置時,有兩種不同的信號,綠色信號燈排在第一個位置時,也有兩種不同的信號,黃色信號燈排在第一個位置時,也有兩種不同的信號,因而共有3個2種不同排列方法,即2×3=6種。

      練習(xí)二

      1.用紅、黃、藍(lán)三種顏色涂圓圈,每個圓圈涂一種顏色,一共有多少種不同的涂法?○○○

      大愚教育中小學(xué)個性化學(xué)習(xí)中心

      2.用2、3、5、7四個數(shù)字,可以組成多少個不同的四位數(shù)?

      例3.一個長方形的周長是22米,如果它的長和寬都是整米數(shù),那么這個長方形的面積有多少種可能?

      分析與解答:由于長方形的周長是22米,可知它的長與寬之和為11米。下面列舉出符合這個條件的各種長方形:

      練習(xí)三

      1.一個長方形的周長是30厘米,如果它的長和寬都是整厘米數(shù),那么這個長方形的面積有多少種可能值?

      2.3個自然數(shù)的乘積是18,問由這樣的3個數(shù)所組成的數(shù)組有多少個?如(1.2.9)就是其中的一個,而且數(shù)組中數(shù)字相同但順序不同的算作同一數(shù)組,如(1.2.9)和(2.9,1)是同一數(shù)組。

      例4.有4位小朋友,寒假中互相通一次電話,他們一共打了多少次電話?

      分析與解答:把4個小朋友分別編號:A、B、C、D,A與其他小朋友打電話,應(yīng)該打3次,同樣B小朋友也應(yīng)打3次電話,同樣C、D應(yīng)該各打3次電話。4個小朋友,共打了3×4=12次。但題目要求兩個小朋友之間只要通一次電話,那么A打電話給B時,A、B兩人已經(jīng)通過話了,所以B沒有必要再打電話給A,照這樣計算,12次電話中,有一半是重復(fù)計算的,所以實際打電話的次數(shù)是3×4÷2=6次。

      練習(xí)四

      1.6個小隊進(jìn)行排球比賽,每兩隊比賽一場,共要進(jìn)行多少次比賽?

      2.小芳出席由19人參加的聯(lián)歡會,散會后,每兩人都要握一次手,他們一共握了多少次手?

      課后練習(xí)

      1.明明有2件不同的上衣,3條不同的褲子,4雙不同的鞋子。最多可搭配成多少種不同的裝束?

      2.用數(shù)字1、2、3.可以組成多少個不同的三位數(shù)?分別是哪幾個數(shù)?

      3把15個玻璃球分成數(shù)量不同的4堆,共有多少種不同的分法?

      4.有8位小朋友,要互通一次電話,他們一共打了多少次電話?

      第四篇:2011.10.25詢盤總結(jié)

      關(guān)于詢盤的報告

      第一封回盤非常重要,關(guān)系到后續(xù)客戶會不會繼續(xù)跟你交談,對不的產(chǎn)品滿不滿意等問題,所以在第一封回盤時,要先對客戶的詢盤進(jìn)行認(rèn)真的分析。

      拿到一份詢盤,我們要先認(rèn)真看清客戶的資料,包括:對你的稱呼、名字、哪種郵箱,國家??蛻舻漠a(chǎn)品需求等。其中國家很重要,我們要關(guān)注他們的時差問題,根據(jù)他們的活躍時間段給他們回復(fù)郵件,這樣被關(guān)注率會大大提高,進(jìn)一步的交流也會大大提高。

      我們把詢盤大致分為三種:

      1、垃圾詢盤,問一些不相關(guān)的信息,對于這種郵件可以直接pass掉。

      2、群發(fā)詢盤,這種詢盤一般可以根據(jù)稱呼來判斷,如Dear sir,這種郵件一般是想尋找合作伙伴,不用馬上給他回復(fù),可以等把手頭上重要的郵件回復(fù)完再去回復(fù)他們。這種客戶一般是潛在客戶,要持續(xù)和他們保持聯(lián)系,了解他們的需求。必要的時候用不同郵箱跟他們交流。

      3、高質(zhì)量詢盤,有針對性地問了產(chǎn)品問題或者直接給出訂單等。這些郵件要認(rèn)真揣測客戶的意象,具體有下面幾種形式。

      (1)直接要報價單,這種郵件一般是群發(fā)的。第一次回復(fù)一定不能馬上給我們的報價單。先跟他進(jìn)行一些細(xì)節(jié)的交談,看看客戶是不是真誠的要買產(chǎn)品。比如問客戶需要什么類型產(chǎn)品、規(guī)格、型號、材質(zhì)、市場需求、以為的采購數(shù)量、有沒有與中國供應(yīng)商交易的經(jīng)歷等。如果客戶有留下自己的公司名稱,可以直接到谷歌去搜索一下。經(jīng)過交談我們也可以跟他推薦一下他們之前用過、我們有的一些新款產(chǎn)品,說出我們產(chǎn)品的優(yōu)點(diǎn)等。

      (2)如果詢盤的郵件用很大的篇幅去描述他們的公司,就是針對一些大公司客戶時,我們的回盤一定要專業(yè)。價格一般不是大公司考慮的首要問題,品質(zhì)和服務(wù)是最重要的。我們要詳細(xì)地舉出我們產(chǎn)品品質(zhì)的優(yōu)勢,回盤要讓客戶感受的我們的良好的服務(wù)質(zhì)量。

      (3)如果一些客戶詢盤是直接給出了要買哪種產(chǎn)品,型號,數(shù)量都已經(jīng)說得很清楚,也就是說訂單已經(jīng)成了,現(xiàn)在只關(guān)心價格問題。這時他肯定針對的不只是你一個客戶。所以我們一定要給出報價,價格要適當(dāng)留一點(diǎn)空間,而且服務(wù)要好點(diǎn),這種客戶能成就馬上成,不行就over了。不過如果這次訂單沒成的話,我們也要這個客戶保存著,實時跟他聯(lián)系,了解他的需求。這有一關(guān)鍵的點(diǎn),就是如果你可以打電話,直接打電話更好。這樣客戶對你就印象深刻,也讓客戶知道你對他的重視。

      我們要有針對地回復(fù)客戶的詢盤,比如一些客戶有講了他們公司的簡介,我們回盤時也要相應(yīng)介紹一下我們公司等。

      報價問題,對小訂單的報價,我們一般直接報總價(產(chǎn)品價格和一切運(yùn)費(fèi)雜費(fèi)都加進(jìn)去),對于大訂單的報價,我們一般報基本價格和FOB,這兩部分。

      以上是我今天的心得總結(jié)。

      Michael cheung

      2011.12.25

      第五篇:4月份復(fù)盤總結(jié)

      4月份復(fù)盤總結(jié)

      通過4月份的工作,監(jiān)理單位對本月工作情況總結(jié):

      一、質(zhì)量方面:

      1、鋼筋加工

      鋼筋料場方面:監(jiān)理單位在上月對現(xiàn)場鋼筋料場進(jìn)行了嚴(yán)格管控,做到每日一檢。對料場內(nèi)鋼筋的凈長尺寸,彎鉤長度,以及箍筋內(nèi)截面尺寸進(jìn)行實測實量,如實填寫實測實量表格并及時上報給業(yè)主。通過上月監(jiān)理對料場的嚴(yán)格管控,施工方在鋼筋安裝時減少了很多不必要的錯誤,加快了監(jiān)理驗收進(jìn)度,同時也控制了現(xiàn)場的鋼筋安裝質(zhì)量。

      2、鋼筋安裝

      上月監(jiān)理單位嚴(yán)格按照圖集及規(guī)范要求對鋼筋安裝方面進(jìn)行了重點(diǎn)檢查,對于措施筋,墻柱鋼筋以及梁板筋進(jìn)行了嚴(yán)格管控,包括鋼筋搭接錨固長度問題,保護(hù)層問題,鋼筋偏位問題,綁線滿綁及墊塊的鋪放問題等。監(jiān)理單位在驗收過程中做到了過程中管控,對于現(xiàn)場每道施工工序做到提前驗收,并做好實測實量工作。對于現(xiàn)場鋼筋施工進(jìn)度方面給予了最大的支持,施工方對于監(jiān)理單位的要求也進(jìn)行了相應(yīng)的整改,但有些細(xì)節(jié)問題仍沒有完全按照首件制制度進(jìn)行施工。要求施工單位在本月的施工過程中對于細(xì)節(jié)問題進(jìn)行進(jìn)一步的管控。

      3、模板安裝

      現(xiàn)場模板安裝方面存在的問題相應(yīng)較多,包括模板標(biāo)高,垂直度,定位情況,模板加固情況以及現(xiàn)場支模架問題。監(jiān)理單位在模板安裝過程中進(jìn)行了嚴(yán)格管控,并及時做好實測實量工作,對于不滿足規(guī)范要求的地方,要求其立即整改。但對于部分問題的解決有了相應(yīng)的難度,例如支模架的安裝不能完全按照施工方案進(jìn)行施工。要求下月在模板安裝的過程中,施工單位必須對此類問題進(jìn)行進(jìn)一步整改,監(jiān)理單位對模板安裝加強(qiáng)管控。

      4、混凝土澆筑

      ①監(jiān)理單位對于混凝土澆筑做到了全程管控并做好旁站工作,對于現(xiàn)場混凝土澆筑過程中鋼筋修補(bǔ)問題,混凝土標(biāo)號問題,現(xiàn)場混凝土振搗問題做到了及時管控,并做好旁站記錄。同時也對混凝土澆筑完成后的養(yǎng)護(hù)及成活面問題進(jìn)行了及時跟蹤,對于不滿足規(guī)范要求問題,要求施工單位及時進(jìn)行整改。

      ② 對于現(xiàn)場混凝土拆模后的墻面、梁底混凝土缺陷問題進(jìn)行及

      時跟蹤。并對墻身截面尺寸,垂直度,平整度問題做好實測實量工作,并及時要求施工單位對于相應(yīng)問題進(jìn)行整改。

      5、實測實量工作

      上月監(jiān)理單位對于實測實量工作進(jìn)行了嚴(yán)格管控,在各項工序驗收的過程中對于各道工序進(jìn)行具有真實性的實測實量工作,并及時做好實測實量記錄與臺帳并要求施工單位進(jìn)行100%。實測實量,對提升施工質(zhì)量和施工速度起到了重要作用。

      二、安全方面

      1、外腳手架問題

      上月監(jiān)理單位對現(xiàn)場外腳手架安裝問題進(jìn)行了嚴(yán)格管控,并有了相應(yīng)的改進(jìn)。但在2013年施工過程中,對于外腳手架安裝問題的遺留過多,監(jiān)理單位已經(jīng)及時發(fā)現(xiàn)并要求施工單位及時進(jìn)行整改。希望施工單位在遺留問題整改過程中能做到進(jìn)一步的管控,并加強(qiáng)管控力度。做到在最短的時間內(nèi)將上述問題整改完畢。

      2、支模架問題

      監(jiān)理單位在驗收過程中,對于現(xiàn)場支模架問題進(jìn)行了嚴(yán)格管控,包括支模架掃地桿,橫桿、立桿間距,剪刀撐,U托,次龍骨間距,自由端橫桿等問題。施工單位對于支模架的安裝也有了相應(yīng)改進(jìn),但仍有一些問題沒有完全按照施工方案進(jìn)行施工,希望施工單位在日后施工過程中能進(jìn)一步加強(qiáng)管控。同時也將此項工作作為今后安全管控的重點(diǎn)。

      3、臨邊洞口修復(fù)問題

      監(jiān)理單位在巡視過場中對于各棟號內(nèi)洞口及臨邊防護(hù)問題進(jìn)行跟蹤檢查,并且要求施工單位對于此類問題進(jìn)行及時整改。但對于拆模后樓層洞口筋臨邊的防護(hù)問題監(jiān)理單位雖然反復(fù)要求,但施工單位仍沒有整改動作。在本月監(jiān)理方重點(diǎn)加強(qiáng)這方面的管控。

      4、配電箱管控問題

      1、對于現(xiàn)場配電箱電線無接地,一閘多用,巡檢記錄不完整等

      問題,監(jiān)理單位已明確提出并要求施工單位及時進(jìn)行整改。

      三、內(nèi)業(yè)資料問題

      1、監(jiān)理工程師通知單,聯(lián)系單的下發(fā)與回復(fù)問題

      監(jiān)理單位對于現(xiàn)場各道工序發(fā)生的問題及時以監(jiān)理通知單或聯(lián)系單形式及時下發(fā)到施工單位,并要求施工單位及時整改并回復(fù)。但施工單位對監(jiān)理通知單的回復(fù)嚴(yán)肅性沒有高度的認(rèn)識,對監(jiān)理通知單的回復(fù)有敷衍現(xiàn)象。

      2、原材料進(jìn)廠管控問題

      上月監(jiān)理單位對于現(xiàn)場原材料進(jìn)廠問題進(jìn)行了重點(diǎn)控制,對于原材料外觀,直徑尺寸,合格證及爐批號進(jìn)行重點(diǎn)驗收,做好實測實量表格及影像資料等并及時匯總,做好臺帳。如果發(fā)現(xiàn)原材料不符合規(guī)范要求,要求其立即退場。

      3、澆筑令問題

      ① 混凝土澆筑前,要求施工單位將混凝土澆筑令及相應(yīng)資料提前做好。所有人簽字確認(rèn)后方可允許施工單位進(jìn)行混凝土澆筑。

      ② 對于澆筑令內(nèi)各項隱蔽驗收、檢驗批、測量放線、復(fù)試報告、施工單位自檢記錄(施工單位實測實量驗收表)進(jìn)行檢查。合格后對與現(xiàn)場進(jìn)行驗收,并做好實測實量記錄。

      4、各類臺帳的建立、存檔問題

      監(jiān)理單位對所有臺帳進(jìn)行建立,并及時存檔。

      5、二次復(fù)試報告管控

      監(jiān)理單位對于現(xiàn)場鋼筋送樣及二次報告回復(fù)問題進(jìn)行嚴(yán)控,并要求施工單位在二次復(fù)試報告問題加強(qiáng)管理。

      6、會議紀(jì)要、監(jiān)理例會等

      上月監(jiān)理單位對各項會議所提出的問題進(jìn)行了充分的總結(jié),并已會議紀(jì)要的形式下發(fā)給施工單位。同時監(jiān)理單位也做到了問題的跟蹤與解決,并要求施工單位對于會議內(nèi)容上的問題進(jìn)行及時整改與回復(fù)。每周做好監(jiān)理例會總結(jié),并將監(jiān)理在每周發(fā)現(xiàn)的問題及下周工作重點(diǎn)及時上報給業(yè)主。

      7、銷項清單

      監(jiān)理單位堅持每周對現(xiàn)場施工進(jìn)行檢查,做好記錄及影像資料。及時匯總成銷項清單形式并下發(fā)給施工單位。對于發(fā)現(xiàn)的問題要求施工單位及時整改并回復(fù)。

      四、現(xiàn)場文明施工問題

      現(xiàn)場文明施工方面:本月監(jiān)理單位重點(diǎn)管控了現(xiàn)場文明施工問題,對于現(xiàn)場鋼筋加工區(qū)圍擋,責(zé)任人標(biāo)識牌,鋼筋標(biāo)識標(biāo)牌,以及現(xiàn)場加工棚進(jìn)行了嚴(yán)格檢查,施工單位也積極的配合了監(jiān)理單位的工作,對現(xiàn)場文明施工情況進(jìn)行了及時整改。但現(xiàn)場鋼筋料場仍有不足的地方,包括彎曲機(jī)芯軸問題,現(xiàn)場機(jī)械未能全部在加工棚內(nèi)進(jìn)行加工問題等。監(jiān)理單位應(yīng)對此類問題進(jìn)行進(jìn)一步的管控。

      通過上月各棟號首件制制度的落實,施工單位對于各道工序的質(zhì)量方面有了明顯的改進(jìn)。但仍有一些問題沒有完全按照首件制制度執(zhí)

      行,希望施工單位在日后的施工過程中能完全按照首件制制度執(zhí)行。監(jiān)理單位對于日后的施工工作加強(qiáng)管控,同時也希望業(yè)主對監(jiān)理單位的工作給予支持。

      下載U盤枚舉(自己總結(jié))word格式文檔
      下載U盤枚舉(自己總結(jié)).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        盤車工藝總結(jié)

        龍背灣盤車及抱瓦工藝總結(jié) 一、發(fā)電機(jī)盤車(軸線測量)并調(diào)整 1、盤車前準(zhǔn)備 (1)、上導(dǎo)沿圓周八等分或十二等分(可結(jié)合自己電廠上導(dǎo)瓦的個數(shù)確認(rèn)等分?jǐn)?shù)目,由于我廠上、下導(dǎo)均為12塊......

        踩盤方法總結(jié)

        踩盤方法總結(jié) 研發(fā)部 第一部分:踩盤者的潛規(guī)則 1、到售樓處踩盤就是為了搜集情報和增長見識和做到“知彼知己,百戰(zhàn)不殆” 踩盤的作用有兩個: 一是了解可類比樓盤和競爭對手的......

        踩盤學(xué)習(xí)總結(jié)

        學(xué)習(xí)總結(jié) 時間過得好快,轉(zhuǎn)眼我來到公司一個月了,從一個會計轉(zhuǎn)為一名置業(yè)顧問,期間,我學(xué)到了很多知識,從短短的幾天時間學(xué)房地產(chǎn)基礎(chǔ)知識、**項目基礎(chǔ)知識,到最后上崗接待客戶,從中......

        第一次踩盤總結(jié)

        第一次踩盤沒有什么經(jīng)驗,我簡單和大家分享一下今天出現(xiàn)的問題,希望引以為鑒。 一 根據(jù)自身實力選擇明踩、暗踩。 1現(xiàn)在大家的水平估計很快就會被認(rèn)出來所以建議明踩,而且暗踩......

        實用的枚舉算法教案

        《實用的枚舉算法》教案 上課時間:2016.4.29 班級:技術(shù)1班 授課教師:徐飛翔 一、教學(xué)目標(biāo): 1、知識與技能: (1)理解枚舉算法的概念。 (2)通過枚舉算法,理解循環(huán)中嵌套分支的結(jié)構(gòu)特點(diǎn),執(zhí)......

        論證模型之枚舉歸納

        論證模型之枚舉歸納 首先,我們先來看一道真題: 莫大偉到吉安公司上班的第一天,就被公司職工自由散漫的表現(xiàn)所震驚,莫大偉由此得出結(jié)論,吉安公司是一個管理失效的公司。吉安公司的......

        第6課 枚舉法 說課稿

        各位評委老師好!我說課的題目是《枚舉法》主要分為六個方面來說課。 一、說教材: 枚舉法求解問題是現(xiàn)實生活中經(jīng)常用到的一種方法,重點(diǎn)是如何從實際問題建立適當(dāng)?shù)臄?shù)學(xué)模型、構(gòu)......

        踩盤技巧總結(jié)匯總

        關(guān)于踩盤 討論背景 最近公司的踩盤活動較多,發(fā)現(xiàn)在踩盤過程中有很多信息是可以不用去現(xiàn)場就可以查到的,有些信息到了現(xiàn)場還是得不到。于是腦袋里出現(xiàn)了一些問題——踩盤的目的......