新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 程序移植中的常見(jiàn)問(wèn)題總結(jié)

程序移植中的常見(jiàn)問(wèn)題總結(jié)

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏
現(xiàn)象:

芯片驅(qū)動(dòng)正常,功能應(yīng)用單獨(dú)實(shí)現(xiàn)也沒(méi)有任何問(wèn)題。但是將其移植到主程序中出現(xiàn)了時(shí)鐘顯示停止、觸屏失效、參數(shù)顯示出現(xiàn)問(wèn)題的現(xiàn)象。

原因:
在芯片驅(qū)動(dòng)程序的開(kāi)發(fā)中,忽略了一個(gè)問(wèn)題。那就是該芯片引腳占用的IO資源在初始化的時(shí)候不應(yīng)該改變其他引腳的正常功能工作。初始化芯片時(shí)人為的改變了其余功能引腳的作用。將其功能復(fù)用功能人為了改成了輸出引腳。只關(guān)注了該芯片正常工作時(shí)的IO引腳,忽略了其余各IO口的復(fù)用狀態(tài)。后逐條分析查看原主程序中 IO的初始化操作,逐口比對(duì)發(fā)現(xiàn)了該問(wèn)題。

解決方案:
重新對(duì)接口進(jìn)行初始化,保留其余引腳的功能復(fù)用作用。

總結(jié):
工作要細(xì)致,不要犯想當(dāng)然的毛病。出現(xiàn)問(wèn)題后要冷靜,咬人是不對(duì)的,呵呵。。。

本文引用地址:http://butianyuan.cn/article/201612/324469.htm

一、關(guān)于延時(shí)

芯片時(shí)序要求非常嚴(yán)格,最基本的時(shí)間單位一定要非常精確,精確到微秒級(jí)。這是進(jìn)行后續(xù)工作的基礎(chǔ)。因?yàn)镃語(yǔ)言來(lái)編程,不是很好控制延時(shí)的長(zhǎng)短。故采用測(cè)試的方法進(jìn)行,為了最大可能的減小誤差,采用延長(zhǎng)測(cè)試時(shí)間的方式進(jìn)行。其基本思想是延時(shí)一定時(shí)間后,將其時(shí)間在屏幕上打印出來(lái),并分析各兩次時(shí)間的間隔和具體延時(shí)參數(shù)之間的關(guān)系。例如:當(dāng)延時(shí)參數(shù)為60000000時(shí),各兩次時(shí)間間隔是否小于1分鐘?!緜渥ⅲ?0000000us=1min】

二、對(duì)芯片的讀寫(xiě)操作驗(yàn)證

進(jìn)行芯片自我驗(yàn)證,向芯片暫存器的固定字節(jié)寫(xiě)入數(shù)據(jù),然后一個(gè)字節(jié)一個(gè)字節(jié)讀出來(lái),比對(duì)寫(xiě)入和讀出的數(shù)據(jù)是否一樣。

三、非易失操作的必要性

RAM數(shù)據(jù)暫存器用于內(nèi)部計(jì)算和數(shù)據(jù)的存取,數(shù)據(jù)在掉電后丟失。為長(zhǎng)期保存需要保存的數(shù)據(jù)信息,需要將相關(guān)數(shù)據(jù)信息由暫存器拷貝到EEPROM中。
上電復(fù)位后,芯片自動(dòng)將EEPROM中相關(guān)字節(jié)拷貝到RAM中。

四、非必需操作的必要性

芯片讀取操作,首先讀取數(shù)據(jù)的低8位,再讀取數(shù)據(jù)的高8位。無(wú)論是低8位還是高8位,都是從最低位一位一位的讀。即使低位是不需要的字節(jié)也要讀出來(lái),這叫規(guī)則。



關(guān)鍵詞: 程序移植芯片驅(qū)

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉