第一篇:浙工大招生細(xì)則
浙江工業(yè)大學(xué)建筑工程學(xué)院2012年研究生招生調(diào)劑、復(fù)試方案及實(shí)施細(xì)則 作者:點(diǎn)擊:692發(fā)表時(shí)間:2012-4-6
2012年建筑工程學(xué)院將貫徹學(xué)?!鞍葱枵猩?、德智體全面衡量、擇優(yōu)錄取、寧缺勿濫”的原則,積極穩(wěn)妥地做好全日制學(xué)術(shù)型碩士研究生和專業(yè)學(xué)位碩士研究生招生工作,保證研究生招生質(zhì)量?,F(xiàn)將我院有關(guān)調(diào)劑、復(fù)試方案及具體實(shí)施細(xì)則公布如下:
一、組織機(jī)構(gòu)
學(xué)院成立研究生招生工作領(lǐng)導(dǎo)小組,全面負(fù)責(zé)學(xué)院的碩士研究生復(fù)試、調(diào)劑、錄取工作和廉政建設(shè)工作;成立學(xué)院復(fù)試導(dǎo)師組,負(fù)責(zé)考生的面試工作。
學(xué)院招生工作領(lǐng)導(dǎo)小組名單如下:
組長:楊楊
副組長:張俊芝
成員:鄭建軍、盧成原、李軍、董志勇、張新軍、施穎、許四法、王國才、胡敏云、韋甦
紀(jì)檢:彭國軍
秘書:郭欲丹
學(xué)院復(fù)試導(dǎo)師組成員如下:
丁翠紅、胡敏云、王國才、潘曉東、王哲、許四法、趙滇生、趙志方、鄭建軍、單魯陽、崔欽淑、盧成原、楊俊杰、吳劍國、張新軍、施穎、周欣竹、劉萌成、王克忠、張建勝、彭衛(wèi)兵、孔德玉、于文波、胡琦、董志勇、丁春生、劉宏遠(yuǎn)、王紅宇、陳磊、劉俊萍、陳紅英、馬曉雁、張勇、王立峰、程澤海
以上教師將分為5個(gè)面試小組開展招生面試工作,其中土木工程4個(gè)小組,建筑與土木工程(專業(yè)學(xué)位)1個(gè)小組。
二、調(diào)劑工作
(一)調(diào)劑名額
依據(jù)總?cè)藬?shù)招生指標(biāo)1:1.2的比例確定復(fù)試名額的原則和一志愿報(bào)考我院上線的考生人數(shù),土木工程有8個(gè)名額、建筑與土木工程(專業(yè)學(xué)位)有9個(gè)名額可用于接受調(diào)劑生參加復(fù)試。
(二)調(diào)劑原則
1、所有調(diào)劑生源均須符合教育部的調(diào)劑原則??偡趾蛦慰瞥煽兙柽_(dá)到A類地區(qū)工科分?jǐn)?shù)線要求。
2、考生初試科目應(yīng)與調(diào)入專業(yè)初試科目相同或相近,其中統(tǒng)考科目原則上應(yīng)相同,初試科目為數(shù)學(xué)一的專業(yè)可調(diào)劑至數(shù)學(xué)二的專業(yè)。
3、考生調(diào)劑工作必須通過“全國碩士研究生招生調(diào)劑服務(wù)系統(tǒng)”進(jìn)行,未經(jīng)調(diào)劑系統(tǒng)錄取的調(diào)劑考生不予認(rèn)可。
4、調(diào)劑生按三門統(tǒng)考科目的總分從高到低進(jìn)行排序確定調(diào)劑復(fù)試名單,若三門統(tǒng)考科目總分相同,以初試總分高者優(yōu)先。
5、參加我院復(fù)試未被錄取,但復(fù)試成績合格的考生可優(yōu)先參加后面批次的調(diào)劑。
(三)調(diào)劑工作的操作程序
1、考生自行登錄“全國碩士研究生招生調(diào)劑服務(wù)系統(tǒng)http://yz.chsi.cn”填報(bào)本人調(diào)劑信息。調(diào)劑報(bào)名截止時(shí)間為4月9日上午8:00。逾期將不再納入調(diào)劑考生信息庫中。
2、4月9日至4月10日,學(xué)院審核考生志愿信息,對符合要求的考生發(fā)送復(fù)試通知,并要求考生在研招網(wǎng)調(diào)劑服務(wù)系統(tǒng)回復(fù)。逾期不回復(fù)視作放棄。
3、4月11日至4月13日,分批公示復(fù)試名單。
4、4月16日至4月17日考生參加復(fù)試。
5、復(fù)試工作結(jié)束后,將及時(shí)告知考生復(fù)試結(jié)果,并在研招網(wǎng)上向復(fù)試合格考生發(fā)送待錄取通知,要求考生在“全國碩士研究生招生調(diào)劑服務(wù)系統(tǒng)”回復(fù)。擬錄取名單將在網(wǎng)站公示,公示時(shí)間為一周。
6、對于復(fù)試合格擬錄取的調(diào)劑考生,學(xué)校出具正式接收函,調(diào)取調(diào)劑考生考試檔案。
三、復(fù)試方案及具體實(shí)施細(xì)則
(一)復(fù)試名單
復(fù)試名單由兩部分組成,一是第一志愿報(bào)考浙江工業(yè)大學(xué)建筑工程學(xué)院,且初試成績達(dá)到國家A類地區(qū)工科復(fù)試分?jǐn)?shù)線的考生(此類考生學(xué)院不再單獨(dú)發(fā)放復(fù)試通知);二是在中國研究生招生信息網(wǎng)“全國碩士研究生招生調(diào)劑服務(wù)系統(tǒng)”上已被同意到我院參加復(fù)試的考生。
(二)資格審查
4月16日(周一)上午9:00—11:00,下午2:00—4:30,朝暉校區(qū)文薈樓206資格審查,同時(shí)領(lǐng)取復(fù)試通知單和導(dǎo)師雙向選擇表。
考生參加復(fù)試時(shí)須持如下材料:
1、本人有效身份證原件和復(fù)印件;
2、按不同報(bào)考學(xué)歷分別提供以下材料:
①應(yīng)屆本科畢業(yè)生:完整注冊后的學(xué)生證(高校教務(wù)部門頒發(fā)的學(xué)生證)和復(fù)印件。
②往屆本科畢業(yè)生:本科畢業(yè)證書原件和復(fù)印件、《教育部學(xué)歷證書電子注冊備案表》的打印件(來源地址:http://.cn/xlcx/)。因畢業(yè)時(shí)間早而不能在線驗(yàn)證的,需提供教育部《中國高等教育學(xué)歷認(rèn)證報(bào)告》(http://.cn/xlrz/)。
③同等學(xué)力考生,??飘厴I(yè)生出示??飘厴I(yè)證書原件和復(fù)印件(2010年9月1日前畢業(yè))及所報(bào)考專業(yè)六門本科主干課成績證明(須進(jìn)修學(xué)校教務(wù)部門出具成績證明或自學(xué)考試成績單);本科結(jié)業(yè)生出示本科結(jié)業(yè)證書原件和復(fù)印件;成人高校應(yīng)屆本科畢業(yè)生出示就讀學(xué)校成人教育管理部門出具應(yīng)屆畢業(yè)生證明。
3、考生請?jiān)趶?fù)試時(shí)帶上蓋有紅章的大學(xué)期間成績單(應(yīng)屆本科生可以向所在學(xué)校教務(wù)部門索要,歷屆畢業(yè)的考生,可向檔案管理部門要求復(fù)印,并蓋章。)
4、本人政審表(需單位黨組織蓋章);
5、本人四六級(jí)英語成績單;
6、復(fù)試時(shí)須加試的同等學(xué)力考生指:??飘厴I(yè)生、本科結(jié)業(yè)生、成人高校應(yīng)屆本科畢業(yè)生,加試科目請參
考我校2012年碩士研究生招生簡章。
(三)復(fù)試工作進(jìn)程與地點(diǎn)安排
4月16日(周一),考生確定專業(yè)課筆試科目。
4月17日(周二)上午9:00—11:00,專業(yè)課筆試和英語聽力;上午11:10,土木工程的考生抽簽決定面試組及面試順序。
4月17日(周二)下午1:30,專業(yè)面試。
筆試、抽簽與面試地點(diǎn)我院將在4月16日通知。
(四)復(fù)試工作具體實(shí)施細(xì)則
1、專業(yè)課筆試,閉卷,滿分100分,考試時(shí)間1.5小時(shí)。
(1)土木工程的考生可在以下科目中任選一門:
土力學(xué)、混凝土結(jié)構(gòu)、鋼結(jié)構(gòu)、給水排水管網(wǎng)系統(tǒng)、水泵及水泵站、環(huán)境影響評(píng)價(jià)、水工建筑物、橋梁工程、混凝土結(jié)構(gòu)基本原理、隧道工程、結(jié)構(gòu)動(dòng)力學(xué)基礎(chǔ)、地震工程、結(jié)構(gòu)風(fēng)工程
(2)建筑與土木工程的考生可在以下科目中任選一門:
混凝土結(jié)構(gòu)基本原理、鋼結(jié)構(gòu)基本原理、土力學(xué)與地基基礎(chǔ)、隧道工程、橋梁工程、給水排水管網(wǎng)系統(tǒng)、水泵及水泵站、環(huán)境影響評(píng)價(jià)、水工建筑物
參考書籍詳見《浙江工業(yè)大學(xué)2012年碩士研究生招生簡章》
http:///zsxx/view.asp?d_id=381&class=6
同等學(xué)力考生加試科目僅作為筆試成績的參考,該項(xiàng)成績不記入錄取總分。
2、外語聽力測試,滿分50分,考試時(shí)間0.5小時(shí)。
3、面試,滿分100分,每人20分鐘,其中:
(1)外語口語能力測試,考核方式為口試,占20%;
(2)綜合素質(zhì)測試,考核方式為口試。主要考察學(xué)生綜合素質(zhì)和能力、思想政治素質(zhì)和品德,包括考
生的政治態(tài)度、思想表現(xiàn)、工作學(xué)習(xí)態(tài)度、道德品質(zhì)、遵紀(jì)守法、誠實(shí)守信等方面,同時(shí)還要考察學(xué)生的事業(yè)心、責(zé)任感和社會(huì)實(shí)踐等方面的情況,占30%;
(3)專業(yè)科目測試,考核方式為口試。在考察學(xué)生的專業(yè)素質(zhì)能力時(shí),還將考核學(xué)生利用所學(xué)理論發(fā)現(xiàn)、分析和解決問題的能力,對本學(xué)科發(fā)展動(dòng)態(tài)的了解以及在本專業(yè)領(lǐng)域發(fā)展的潛力。對本科非土木工程類專業(yè)的考生,請?jiān)诿嬖嚨淖晕医榻B中聲明,告訴老師自己本科所學(xué)的專業(yè)課,同時(shí)請準(zhǔn)備所面試專業(yè)的相關(guān)知識(shí),占50%。
4、復(fù)試成績計(jì)算:以上筆試、聽力和面試三項(xiàng)成績總分(共250分)折算成100分制作為復(fù)試成績,低于60分者為復(fù)試不合格。
5、綜合分計(jì)算:綜合分 = 0.60 ×(初試總分/5)+ 0.40 ×(復(fù)試總分/2.5)
(五)擬錄取辦法
1、錄取工作堅(jiān)持德、智、體全面衡量、擇優(yōu)錄取、保證質(zhì)量、寧缺毋濫的原則,嚴(yán)格遵守規(guī)定的審批程序,確保錄取工作公開、公平、公正。
2、復(fù)試成績不合格(低于60分)或思想政治素質(zhì)和品德考核不合格者,采取一票否決制,不予錄取。同等學(xué)力考生加試科目成績不合格者(低于60分)不予錄取。
3、按考生綜合分進(jìn)行由高到低排序錄取。
4、聯(lián)合培養(yǎng)、定向、委培、自籌經(jīng)費(fèi)考生在復(fù)試結(jié)束后需簽訂相應(yīng)協(xié)議,如不及時(shí)簽訂協(xié)議書,則作自動(dòng)放棄處理,不予錄取。
(六)體檢
2012年研究生入學(xué)考試復(fù)試體檢工作安排如下:
1、時(shí)間地點(diǎn):4月16日下午1:30—4:00;浙江工業(yè)大學(xué)朝暉校區(qū)醫(yī)院。
2、體檢時(shí)攜帶本人身份證,無需體檢表。體檢費(fèi)50元,不需空腹。
四、其它注意事項(xiàng)1、2012年研究生招生的各項(xiàng)通知請及時(shí)關(guān)注建筑工程學(xué)院網(wǎng)頁(包括復(fù)試名單、擬錄取名單)。若無故不按時(shí)參加復(fù)試和體檢,則視為自動(dòng)放棄復(fù)試資格。
2、上交導(dǎo)師選擇表時(shí),請按要求登記詳細(xì)的檔案所在地地址、通訊地址及聯(lián)系電話(用于調(diào)檔/錄取發(fā)函所用,要求字跡清楚,填寫有誤責(zé)任自負(fù))。定向、委培考生請?jiān)诿嬖嚂r(shí)自行說明,并簽訂相應(yīng)協(xié)議。
調(diào)劑考生請注意:調(diào)劑考生接到參加復(fù)試的通知后,請第一時(shí)間在研究生招生信息網(wǎng)上點(diǎn)擊同意參加復(fù)試按鈕。確定擬錄取名單后,我院將在研究生招生信息網(wǎng)上設(shè)置待錄取標(biāo)志,請考生在第一時(shí)間進(jìn)行網(wǎng)上確認(rèn)。調(diào)劑函由考生本人去第一志愿報(bào)考院校提取相關(guān)檔案資料,送達(dá)我校研究生院。
3、注意我校研究生考生體檢時(shí)間安排,及時(shí)參加體檢。
4、若第一批錄取未滿額,學(xué)院將進(jìn)行第二批調(diào)劑,請關(guān)注學(xué)院網(wǎng)站通知。
5、請廣大考生務(wù)必在調(diào)劑、復(fù)試工作期間保持電話暢通,并及時(shí)關(guān)注網(wǎng)上通知,否則后果自負(fù)。學(xué)院聯(lián)系人:郭老師88320460
紀(jì)檢:郵箱 pgj2003@zjut.edu.cn
第二篇:浙工大 嵌入式實(shí)驗(yàn)報(bào)告
金艷霞
通信2班
201203110210
實(shí)驗(yàn)五 Linux交叉編譯平臺(tái)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握一些基本的linux讀寫操作 2.利用vcc編譯c程序
3.通過nfs掛載到實(shí)驗(yàn)箱中,利用交叉編譯執(zhí)行文件
二.實(shí)驗(yàn)設(shè)備
1.Arm9試驗(yàn)箱 2.Pc機(jī)
3.Linux系統(tǒng)服務(wù)器
三.實(shí)驗(yàn)過程及實(shí)驗(yàn)結(jié)果 1.連接電腦箱
2.設(shè)置交叉編譯環(huán)境 啟動(dòng)putty.exe 登陸192.168.1.116
3.添加軟件包至實(shí)驗(yàn)?zāi)夸洠?① [shiyan@localhost ~]$ cd /home/shiyan ② [shiyan@localhost ~]$ tar –zxvf arm-linux-gcc-3.4.4-glib-2.3.5-static.tar.gz tar-zxvf arm-linux-gcc-3.4.4-glib-2.3.5-static.tar.gz ③ [shiyan@localhost201203110210] $export PATH=$PATH:/home/shiyan/201203110210/opt/crosstool/arm-linux/gcc-3.4.4-glib-2.3.5/arm-linux/bin ④ [shiyan@localhost 201203110210]$ set OSTYPE=linux-gnu PATH=/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/shiyan/bin:/home/shiyan/opt/crosstool/arm-linux/gcc-3.4.4-glibc-2.3.5/arm-linux/bin:/home/shiyan/opt/crosstool/arm-linux/gcc-3.4.4-glibc-2.3.5/arm-linux/bin:/home/shiyan/opt/crosstool/arm-linux/gcc-3.4.4-glibc-2.3.5/arm-linux/bin 可以看出路徑已添加 ⑤ [shiyan@localhost 201203110210]$ arm-linux-g再按tab arm-linux-g++
arm-linux-gcc
arm-linux-gcc-3.4.4 arm-linux-gccbug
arm-linux-gcov ⑥ [shiyan@localhost 201203110210]$ arm-linux-gcc arm-linux-gcc: no input files 此時(shí)出錯(cuò),無此文件 3.測試程序 ① 創(chuàng)建hello.c [shiyan@localhost ~]$ vi hello.c #include
:wq ② 查看是否生成文件
[shiyan@matrix 201203110210]$ ls arm-linux-gcc-3.4.4-glib-2.3.5-static.tar.gz hello.c 已經(jīng)生成 ③ 打開hello.c [shiyan@localhost ~]$./hello.c-bash:/hello cannot execute binary file 表示無法在服務(wù)器上執(zhí)行 ④ 交叉編譯hello.c [shiyan@localhost ~]$ arm-linux-gcc-o hello hello.c ⑤ 將文件拷貝到nfs下
[shiyan@localhost ~]$ cp hello /home/shiyan/nfs ⑥ 掛載服務(wù)器到板子上
/ $ mount –tnfs-o nolock 192.168.1.116:/home/shiyan/nfs/mnt/nfs / $cdmnt/nfs ⑦ 打開hello文件 / $./hello
結(jié)果輸出: Jin 123
四.實(shí)驗(yàn)總結(jié)
上述實(shí)驗(yàn)可以得出,交叉編譯的二進(jìn)制可以在板子上運(yùn)行,卻不能在服務(wù)器上運(yùn)行,很好的認(rèn)清了交叉編譯的意義和功能。
實(shí)驗(yàn)六Armboot下載運(yùn)行及tcp實(shí)驗(yàn)
一.實(shí)驗(yàn)?zāi)康?/p>
1.掌握armboot的編譯 2.掌握tftp工具的使用 3.掌握armboot下載運(yùn)行
4.掌握windows的 tcp客戶端的建立及通信過程 5.掌握tcp的基本原理
二.實(shí)驗(yàn)設(shè)備
1.Arm9試驗(yàn)箱 2.Pc機(jī)
3.Linux系統(tǒng)服務(wù)器
三.實(shí)驗(yàn)過程及實(shí)驗(yàn)結(jié)果 1)Armboot
① 編譯armboot-1.1.0 cd /home/shiyan/arm-linux-2.6/armboot-1.1.0 [shiyan@matrix armboot-1.1.0]$ make
② 產(chǎn)生的armboot.bin拷貝到tftp的目錄服務(wù)下
[shiyan@matrixarmboot-1.1.0]$ cparmboot.bin /home/shiyan/arm-linux-2.6/armboot-1.1.0/tftpboot/armboot ③ 打開arm9開發(fā)板,在五秒內(nèi)按ESC,檢查網(wǎng)絡(luò)環(huán)境
CPE>printenv bootdelay=3 baudrate=38400 ethaddr=00:40:25:00:00:01 netmask=255.255.255.0 sererip=192.168.1.65 ipaddr=192.168.1.111 serverip=192.168.1.30
Environment size: 139/131068 bytes ④ 將armboot的網(wǎng)絡(luò)環(huán)境改為tftp服務(wù)的網(wǎng)絡(luò)地址
setenv serverip 192.168.1.220 CPE>saveenv Un-Protected 1 sectors Erasing sector 6...ok.0x800e0000
o Flash...done.Protected 1 sectors
⑤ 將armboot.bin文件通過tftp傳輸?shù)絻?nèi)存0x2000000H中
CPE>tftp 0x2000000 armboot.bin ARP broadcast 1 ARP broadcast 2
⑥ 運(yùn)行
go 0x2000000
⑦ 檢查網(wǎng)絡(luò)環(huán)境
CPE> printenv bootdelay=3 baudrate=38400 ethaddr=00:40:25:00:00:01 netmask=255.255.255.0 sererip=192.168.1.65 ipaddr=192.168.1.111 serverip=192.168.1.220
通過serverip的改變可看出armboot下載的正確性。
實(shí)驗(yàn)七 Mount掛載實(shí)驗(yàn)
一.實(shí)驗(yàn)?zāi)康?1.掌握一些基本的linux讀寫操作(touch指令)2.掌握Usb掛載方法 3.掌握配置nfs的方法
二.實(shí)驗(yàn)設(shè)備
1.2.3.4.Arm9試驗(yàn)箱 Pc機(jī)
Linux系統(tǒng)服務(wù)器 U盤
三.實(shí)驗(yàn)過程及實(shí)驗(yàn)結(jié)果 A.文件夾掛載 1.服務(wù)器
[shiyan@matrix ~]$/etc/rc.d/init.d/nfs start 2.板子掛載
/ $ ifconfig eth0 192.168.1.98 / $ mount-t nfs-o nolock 192.168.1.220:/home/shiyan/nfs/mnt/nfs /$ df Filesystem
1k-blocks
Used Available Use% Mounted on /dev/mtdblock1
1024
544
480 53% /mnt/mtd 192.168.1.220:/home/shiyan/nfs 515455456 59590720 429681056 12% /mnt/nfs B.Usb 掛載
① 將u盤插入arm9開發(fā)板,并啟動(dòng) ② 查看盤符信息
/ $ fdisk-l
③ 創(chuàng)建一個(gè)/mnt/usb文件夾
/ $ mkdir /mnt/usb ④ 把sda1盤符mount到/mnt/usb文件上
/ $ mount /dev/sda1 /mnt/usb/ / $ cd /mnt/usb /mnt/usb $ ls
⑤ 創(chuàng)建文件,并輸入字符串
/mnt/usb $ vi jin.txt
hello!
⑥ 解掛載
/mnt/usb $ unmount /mnt/usb/ /bin/sh: unmount: not found ⑦ 將u盤拔出,插入電腦,觀察該文件
結(jié)果正確
實(shí)驗(yàn)八RTC時(shí)鐘驅(qū)動(dòng)實(shí)驗(yàn)
一.實(shí)驗(yàn)?zāi)康?/p>
1.了解RTC工作原理 2.掌握RTC時(shí)鐘驅(qū)動(dòng)編程
二.實(shí)驗(yàn)內(nèi)容
1.編寫RTC驅(qū)動(dòng)程序
2.通過insmod加載驅(qū)動(dòng)程序 3.編寫代碼修改RTC內(nèi)部時(shí)間
三.實(shí)驗(yàn)設(shè)備
1.PC機(jī)
2.Arm9實(shí)驗(yàn)箱客戶端 3.Linux操作系統(tǒng)服務(wù)端
四.實(shí)驗(yàn)過程及結(jié)果
1.實(shí)驗(yàn)代碼
#include
“0.01” /* Register map */ /* rtc section */ // control and status registers #define REG_CS1 0x00
#define TEST1
(1<<7)
// 0-normal mode, must be set to logic 0 during normal operations;1-EXT_CLK test mode #define STOP
(1<<5)
// 0-RTC source clock runs;1-the RTC clock is stopped(CLKOUT at 32.768KHz is still available)#define TESTC
(1<<3)
// 0-power-on reset(POR)override facility is disable;set to logic 0 for normal operation;1-POR override may be enable #define REG_CS2 0x01 #define TI_TP
(1<<4)
// 0-int is active when TF is active(subject to the status of TIE)#define AF
(1<<3)#define TF
(1<<2)#define AIE
(1<<1)#define TIE
(1<<0)
// Time and date registers #define REG_SC 0x02
// vl_seconds(0-59)#define REG_MN 0x03
// minutes(0-59)#define REG_HR 0x04
// hours(0-23)#define REG_DT 0x05
// days(1-31)#define REG_DW 0x06
// weekdays(0-6)#define REG_MO 0x07
// century_months(1-12)#define REG_YR 0x08
// years(0-99)
// Alarm registers #define REG_MA 0x09
// minute_alarm #define AE_M
(1<<7)#define REG_HA 0x0a
// hour_alarm #define AE_H
(1<<7)#define REG_DA 0x0b
// day_alarm #define AE_D
(1<<7)#define REG_WA 0x0c
// weekday_alarm #define AE_W
(1<<7)// CLKOUT control register #define REG_CC 0x0d #define FE
(1<<7)// Timer registers #define REG_TC 0x0e
// timer_control #define TE
(1<<7)#define REG_TMR 0x0f
// timer #define RTC_SECTION_LEN
/* i2c configuration */ #define I2C_ADDR
0xa2 ///////////////////////////////////////////////////////////// #define DEFAULT_I2C_CLOCKDIV
180//for APB 108MHz staticunsignedlong rtc_status;staticvolatileunsignedlong rtc_irq_data;staticunsignedlong rtc_freq = 1;/*FTRTC010 supports only 1Hz clock*/ staticstruct fasync_struct *rtc_async_queue;static DECLARE_WAIT_QUEUE_HEAD(rtc_wait);extern spinlock_t rtc_lock;MODULE_AUTHOR(“GM Corp.”);MODULE_LICENSE(“GM License”);externint GM_i2c_xfer(struct i2c_msg *msgs, int num, int clockdiv);/* block read */ staticint i2c_read_regs(u8 reg, u8 buf[], unsigned len){ struct i2c_msg msgs[1];//////////////
buf[0] = reg;
msgs[0].addr = I2C_ADDR>>1;
msgs[0].flags = 0;
msgs[0].len = 1;
msgs[0].buf = buf;
if(GM_i2c_xfer(msgs, 1, DEFAULT_I2C_CLOCKDIV)!= 1)return-1;//////////////
msgs[0].addr = I2C_ADDR>>1;
msgs[0].flags = 1;
msgs[0].len = len+1;
msgs[0].buf = buf;
if(GM_i2c_xfer(msgs, 1, DEFAULT_I2C_CLOCKDIV)!= 1)return-1;return 0;} /* block write */ staticint i2c_set_regs(u8 reg, u8 const buf[], unsigned len){
u8 i2c_buf[10];struct i2c_msg msgs[1];
i2c_buf[0] = reg;
memcpy(&i2c_buf[1], &buf[0], len);
msgs[0].addr = I2C_ADDR>>1;
msgs[0].flags = 0;
msgs[0].len = len+1;
msgs[0].buf = i2c_buf;
if(GM_i2c_xfer(msgs, 1, DEFAULT_I2C_CLOCKDIV)!= 1)return-1;return 0;} staticint set_time(struct rtc_time const *tm){ int sr;
u8 regs[RTC_SECTION_LEN] = { 0, };
printk(“stop RTCn”);
regs[0] = STOP;
regs[1] = 0x00;
// disable interrupt and clear all flags
sr = i2c_set_regs(REG_CS1, regs, 2);if(sr < 0){
// write control and status registers
printk(“%s: stop RTC failedn”, __func__);return sr;
}
printk(“set_time Date(y/m/d):%d/%d/%d Time(h/m/s):%d/%d/%dn”,tm->tm_year,tm->tm_mon,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
regs[REG_SC-REG_SC] = BIN2BCD(tm->tm_sec);
regs[REG_MN-REG_SC] = BIN2BCD(tm->tm_min);
regs[REG_HR-REG_SC] = BIN2BCD(tm->tm_hour);
regs[REG_DT-REG_SC] = BIN2BCD(tm->tm_mday);
regs[REG_MO-REG_SC] = BIN2BCD(tm->tm_mon);
regs[REG_YR-REG_SC] = BIN2BCD(tm->tm_year-100);
regs[REG_DW-REG_SC] = BIN2BCD(tm->tm_wday & 7);/* write RTC registers */
sr = i2c_set_regs(REG_SC, regs, RTC_SECTION_LEN);if(sr < 0){
printk(“%s: writing RTC section failedn”, __func__);return sr;
}
printk(“start RTCn”);
regs[0] = 0x00;
sr = i2c_set_regs(REG_CS1, regs, 1);if(sr < 0){
// write control and status registers
printk(“%s: start RTC failedn”, __func__);return sr;
}
return 0;
} staticvoid read_time(struct rtc_time *tm){ int sr;
u8 regs[RTC_SECTION_LEN] = { 0, };
sr = i2c_read_regs(REG_SC, regs, RTC_SECTION_LEN);if(sr < 0){
printk(“%s: reading RTC section failedn”, __func__);return;
}
tm->tm_sec = BCD2BIN(regs[REG_SC-REG_SC]&0x7f);
tm->tm_min = BCD2BIN(regs[REG_MN-REG_SC]&0x7f);
tm->tm_hour = BCD2BIN(regs[REG_HR-REG_SC]&0x3f);
tm->tm_mday = BCD2BIN(regs[REG_DT-REG_SC]&0x3f);
tm->tm_wday = BCD2BIN(regs[REG_DW-REG_SC]&0x07);
tm->tm_mon = BCD2BIN(regs[REG_MO-REG_SC]&0x1f);/* rtc starts at 1 */
tm->tm_year = BCD2BIN(regs[REG_YR-REG_SC])+100;
printk(“read_time Date(YY/MM/DD):%d/%d/%d Time(hh/mm/ss):%d/%d/%dn”,tm->tm_year,tm->tm_mon,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);} staticunsigned AIE_stat=0;/*ijsung: arch-indep function*/ staticint rtc_open(struct inode *inode, struct file *file){ if(test_and_set_bit(1, &rtc_status))return-EBUSY;
rtc_irq_data = 0;return 0;} staticint rtc_release(struct inode *inode, struct file *file){ unsignedchar buf[7];
rtc_status = 0;return 0;} staticint rtc_fasync(int fd, struct file *filp, int on){ return fasync_helper(fd, filp, on, &rtc_async_queue);} staticunsignedint rtc_poll(struct file *file, poll_table *wait){
poll_wait(file, &rtc_wait, wait);return(rtc_irq_data)? 0 : POLLIN | POLLRDNORM;} static loff_t rtc_llseek(struct file *file, loff_t offset, int origin){ return-ESPIPE;} ssize_t rtc_read(struct file *file, char *buf, size_t count, loff_t *ppos){
DECLARE_WAITQUEUE(wait, current);unsignedlong data;
ssize_t retval;if(count add_wait_queue(&rtc_wait, &wait); set_current_state(TASK_INTERRUPTIBLE);for(;;){ spin_lock_irq(&rtc_lock); data = rtc_irq_data;if(data!= 0){ rtc_irq_data = 0;break; } spin_unlock_irq(&rtc_lock);if(file->f_flags & O_NONBLOCK){ retval =-EAGAIN;goto out; } if(signal_pending(current)){ retval =-ERESTARTSYS;goto out; } schedule(); } spin_unlock_irq(&rtc_lock); data-= 0x100;/* the first IRQ wasn't actually missed */ retval = put_user(data,(unsignedlong *)buf);if(!retval) retval = sizeof(unsignedlong);out: set_current_state(TASK_RUNNING); remove_wait_queue(&rtc_wait, &wait);return retval;} staticint rtc_ioctl(struct inode *inode, struct file *file, unsignedint cmd, unsignedlong arg){ struct rtc_time tm, tm2;unsignedchar buf[7];switch(cmd){ case RTC_AIE_OFF: printk(“Not Supportn”);return 0;case RTC_AIE_ON: printk(“Not Supportn”);return 0;case RTC_ALM_READ: printk(“Not Supportn”);return 0;case RTC_ALM_SET: printk(“Not Supportn”);return 0;case RTC_RD_TIME: read_time(&tm);break; case RTC_SET_TIME: { unsigned usertime;unsignedchar buf[7];if(!capable(CAP_SYS_TIME))return-EACCES;if(copy_from_user(&tm,(struct rtc_time*)arg, sizeof(tm)))return-EFAULT; set_time(&tm); } return 0;case RTC_IRQP_READ: return put_user(rtc_freq,(unsignedlong *)arg);case RTC_IRQP_SET: if(arg!= 1)return-EINVAL;return 0;case RTC_EPOCH_READ: return put_user(1970,(unsignedlong *)arg);default: return-EINVAL; } return copy_to_user((void *)arg, &tm, sizeof(tm))?-EFAULT : 0;} staticstruct file_operations rtc_fops = { owner: THIS_MODULE,llseek: rtc_llseek,read: rtc_read,poll: rtc_poll,ioctl: rtc_ioctl,open: rtc_open,release: rtc_release,fasync: rtc_fasync, };staticstruct miscdevice ftrtc010rtc_miscdev = { RTC_MINOR,“rtc”, &rtc_fops };staticint rtc_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data){ // unsigned alarm_time;unsignedchar buf[7]; char *p = page;int len;struct rtc_time tm; read_time(&tm);//printk(“RTC...%dn”,xtime.tv_sec); p += sprintf(p, “rtc_timet: %02d:%02d:%02dn” “rtc_datet: %04d-%02d-%02dn” “rtc_epocht: %04dn”,tm.tm_hour + 1, tm.tm_min, tm.tm_sec,tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, 2000);// read_alarm(&tm);// p += sprintf(p, “alrm_timet: %2dth day of week dayn” // “alrm_datet: N/A for Platformn”, // tm.tm_wday); p += sprintf(p, “alrm_timet: Not Supportn” “alrm_datet: Not Supportn”); p += sprintf(p, “alarm_IRQt: %sn”, AIE_stat ? “yes” : “no”); len =(poff;if(len < 0) len = 0; *eof =(len <= count)? 1 : 0; *start = page + off;return len;} staticint __init rtc_init(void){ misc_register(&ftrtc010rtc_miscdev); create_proc_read_entry(“driver/rtc”, 0, 0, rtc_read_proc, NULL); printk(“PCF8563 Real Time Clock drivern”);return 0;} staticvoid __exit rtc_exit(void){ remove_proc_entry(“driver/rtc”, NULL); misc_deregister(&ftrtc010rtc_miscdev);} module_init(rtc_init);module_exit(rtc_exit); 2.掛載usb / $ ifconfig eth0 192.168.1.99 / $ mount-t nfs-o nolock 192.168.1.220:/home/shiyan/nfs /mnt/nfs / $ fdisk –l / $ mkdir /mnt/usb / $ mount /dev/sda1 /mnt/usb/ / $ cd /mnt/usb 3.找到u盤中的pcf8563.ko /mnt/usb $ ls 4.加載pcf8563.ko /mnt/usb $ insmod pcf8563.ko 5.更改日期并寫入 6.重啟檢驗(yàn)日期 與當(dāng)前時(shí)間相符 實(shí)驗(yàn)九視頻采集RTP發(fā)送及遠(yuǎn)程視頻監(jiān)控實(shí)驗(yàn) 一.實(shí)驗(yàn)?zāi)康?1.理解視頻傳輸原理 2.掌握在IP網(wǎng)絡(luò)中實(shí)現(xiàn)視頻傳輸?shù)姆椒?3.理解遠(yuǎn)程控制原理 4.掌握在windows下TCP客戶端建立及通信過程 二.實(shí)驗(yàn)內(nèi)容 1.搭建點(diǎn)對點(diǎn)視頻傳輸模式 2.開啟視頻采集 3.開啟Windows下tcp客戶端,完成控制命令 三.實(shí)驗(yàn)設(shè)備 1.硬件:基于雙核處理器架構(gòu)的網(wǎng)絡(luò)音視頻傳輸教學(xué)實(shí)驗(yàn)系統(tǒng); 對接線; 串口連接線; 網(wǎng)線; 集線器(HUB),PC機(jī); 2.軟件:H.264流媒體軟件 設(shè)備端視頻采集程序 設(shè)備端視頻傳輸程序 串口操作軟件 四.實(shí)驗(yàn)步驟及結(jié)果 A.視頻采集 1.連接好實(shí)驗(yàn)箱,打開串口通信端,遠(yuǎn)程mount到home/nfs文件夾 / $ mount-t nfs-o nolock 192.168.1.116:/home/shiyan/nfs /mnt/nfs 2.掛載服務(wù)器下nfs與板子的/mnt/nfs,進(jìn)入/mnt/nfs文件夾 / $ cd /mnt/nfs 3.輸入ls命令,目錄下文件 /mnt/nfs $ ls 123321 clientxxww readme tcpserver StartLog0 ffgpio.ko server tcpserver19 a gpio_test serverfxf tcpserver_arm_11 bo hello serverxw tcpserver_hdt client nfs1 tcpclient tcpserver_zn client_arm ok tcpclient19 tcpsever client_arm_17 program_20_1.c tcpclient_29 tw2835_menu client_arm_st20 program_20_2.c tcpclient_arm_11 xianshi client_dalan programyk tcpclient_hdt yk clientxw programyq tcpclient_zn yq 4.運(yùn)行tw2835_menu進(jìn)行視頻采集 /mnt/nfs $./tw2835_menu& 5.進(jìn)入掛載目錄并查看文件 /mnt/nfs $ cd nfs1 /mnt/nfs/nfs1 $ ls dev_app.app hello vedio.confTCPS1 dev_app3 ffgpio.ko tw2835_menu dev_app gpio_test tw2835_pic 6.運(yùn)行dev_app到板子IP192.168.1.9 /mnt/nfs/nfs1 $./dev_app 192.168.1.9 7.開啟H.264流媒體播放器進(jìn)行視頻接受 a)用解碼器解碼,并允許注冊.bat b)打開H.264流媒體播放器,點(diǎn)擊開啟視頻接收 B.遠(yuǎn)程視頻監(jiān)控 1.重復(fù)以上實(shí)驗(yàn)1~4步 2.進(jìn)入已掛載目錄/mnt/nfs/nfs1,看到多個(gè)程序 /mnt/nfs $ cd nfs1 /mnt/nfs/nfs1 $ ls StartLog0 dev_app.app hello vedio.conf TCPS1 dev_app3 image.info www boot.sh ffgpio.ko tw2835_menu 3.運(yùn)行TCPS1 /mnt/nfs/nfs1 $./ TCPS1 4.程序進(jìn)入等待狀態(tài),等待TCP連接到來 5.開啟H.264流媒體播放器,點(diǎn)擊“開始視頻接收”,屏幕變黑 6.點(diǎn)擊“控制功能”,輸入設(shè)備端ip地址192.168.1.68,點(diǎn)擊連接 7.設(shè)備端出現(xiàn)下列字樣,表示連接成功 Servergetconnectionfrom192.168.1.68 8.點(diǎn)擊“開啟視頻監(jiān)控”,獲得視頻數(shù)據(jù) 實(shí)驗(yàn)十一Tcp網(wǎng)絡(luò)編程 一、實(shí)驗(yàn)?zāi)康?/p> 1.了解網(wǎng)絡(luò)編程原理 2.了解套接字的使用 二、實(shí)驗(yàn)原理 嵌入式Linux的網(wǎng)絡(luò)通信程序是基于套接字模式的。Socket實(shí)際是網(wǎng)絡(luò)傳輸層供給應(yīng)用層的接口。常見的Socket有三種類型。1.流式Sockct 流式套接字提供可靠的,面向連接的通信流,它使用TCP協(xié)議,從而保證了數(shù)據(jù)傳輸?shù)恼_性和順序性。Socket編程采用客戶/服務(wù)器模式。因此編程分為服務(wù)器端和客戶端。服務(wù)器端:首先建立Socket,返回該Socket的描述符;配置Socket的端口和IP地址;建立監(jiān)聽函數(shù),檢測是否有客戶端向服務(wù)器端發(fā)送請求,若有則接收該請求,將其放到接收隊(duì)列中;從接收隊(duì)列中接收一個(gè)請求;并向客戶端發(fā)送確認(rèn)連接信息??蛻舳耍航⒁粋€(gè)Socket,返回該Socket的描述符,配置Socket端口和IP地址;向服務(wù)器發(fā)送連接請求,并接收服務(wù)器發(fā)回的確認(rèn)連接信息。雙方通信結(jié)束后,關(guān)閉其Socket。2.數(shù)據(jù)報(bào)Socket,數(shù)據(jù)通過相互獨(dú)立的報(bào)文進(jìn)行傳輸,數(shù)據(jù)報(bào)套接字定義了一種無連接的服務(wù),是無序的,并且不保證是可靠的,無差錯(cuò)的。它使用數(shù)據(jù)報(bào)協(xié)議UDP。3.原始Socket 使用Socket編程時(shí)可以開發(fā)客戶機(jī)和服務(wù)器端應(yīng)用程序,它們可以在本地網(wǎng)絡(luò)上進(jìn)行通信,也可以通過Internet在全球范圍內(nèi)進(jìn)行通信。編寫并運(yùn)行Socket的客戶端和服務(wù)器端程序,雙方通過套接字建立了服務(wù)連接請求,并且通過一些方法提高Socket的性能。 三、實(shí)驗(yàn)步驟 編寫服務(wù)器端源程序和客戶端源程序 1.代碼: program_20_1.c #include int main(int argc, char *argv[]){ int sockfd,new_fd; struct sockaddr_in server_addr; struct sockaddr_in client_addr; int portnumber; const char hello[]=“Hello and Byen”;// for setsockopt()SO_REUSEADDR, below int yes = 1;int addrlen; if(argc!=2) { fprintf(stderr,“Usage:%s portnumberan”,argv[0]); exit(1); } if((portnumber=atoi(argv[1]))<0) { fprintf(stderr,“Usage:%s portnumberan”,argv[0]); exit(1); } /* 服務(wù)器端開始建立socket描述符 */ if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { fprintf(stderr,“Socket error:%sna”,strerror(errno)); exit(1); } printf(“Server-socket()is OK...n”); // “address already in use” error message if(setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes,sizeof(int))==-1) { perror(“Server-setsockopt()error lol!”); exit(1); } printf(“Server-setsockopt()is OK...n”); /* 服務(wù)器端填充 sockaddr結(jié)構(gòu) */ bzero(&server_addr,sizeof(struct sockaddr_in)); server_addr.sin_family=AF_INET; server_addr.sin_addr.s_addr=htonl(INADDR_ANY); server_addr.sin_port=htons(portnumber); memset(&(server_addr.sin_zero), '