① labview生成.EXE後為什麼無法調用周立功can的dll文件。
這種情況通常是因為DLL庫文件路徑不正確導致的。未編譯的源代碼和已編譯的exe其處理路徑(尤其是相對路徑)方法不一樣,請檢查一下
② 周立功教授新書《面向AMetal框架與介面的編程(上)》簡介
書本前言
產品的 BOM 成本很低,而毛利又很高,為何很多上市公司的年利潤卻買不起一套房?房子到底被誰買走了,這個問題值得我們反思!
1、大膽的推測
追求代碼復用和跨平台,這是開發者夢寐以求的奮斗目標,但現實很殘酷,幾乎無法成為現實。原因何在?MCU 有 M0、M4、M7、ARM9、A5、A7、A8 內核、DSP......有些項目不需要操作系統,有些項目可能選擇 FreeRTOS 或μC/OS-II 或 sysBIOS,另一些項目可能選擇 Linux 或 Windows,因為不同的半導體公司支持的平台不一樣。
基於此,我們不妨做一個大膽的假設。雖然 PCF85063、RX8025T 和 DS1302 來自不同的半導體的公司,但其共性都是 RTC 實時日歷時鍾晶元,即可高度抽象共用相同的驅動介面,其差異性用特殊的驅動介面應對。雖然 FreeRTOS 或μC/OS-II 或 sysBIOS、Linux、Windows 各不相同,但它們都是 OS,多線程、信號量、消息、郵箱、隊列等是其特有的共性,顯然 QT 和 emWin 同樣可以高度抽象為 GUI 框架。也就是說,不管什麼 MCU,也不管是否使用操作系統,只要修改相應的頭文件,即可復用應用代碼,這就是平台的雛形。
2、核心域與非核心域
其實一個軟體系統封裝了若干領域的知識,其中一個領域知識代表了系統的核心競爭力,這個領域被稱為「核心域」,其它領域稱為「非核心域」。雖然更通俗的說法是「業務」和「技術」,但使用「核心域」和「非核心域」更嚴謹。
非核心域就是別人的領域,比如,底層驅動、操作系統和組件,即便你有一些優勢,那也是暫時的,競爭對手也能通過其它渠道獲得。雖然非核心域的改進是必要的,但不充分,還是要在核心域上深入挖掘,讓競爭對手無法輕易從第三方獲得。因為在核心域上深入挖掘,達到基於核心域的復用,這是獲得和保持競爭力的根本手段。
要達到基於核心域的復用,有必要將核心域和非核心域分開考慮。因為過早地將各個領域的知識混雜,會增加不必要的負擔,從而導致開發人員騰不出腦力思考核心域中更深刻的問題。由於待解決的問題的規模一旦變大,而人腦的容量和運算能力有限,因此必須分而治之,因為核心域與非核心域的知識都是獨立的。
3、思維差異決定收益
Yourdon 和 Constantine 在《結構化設計》一書中,將經濟學作為軟體設計的底層驅動力,軟體設計應該致力於降低整體成本。人們發現軟體的維護成本遠遠高於它的初始成本,因為理解現有代碼需要花費時間,而且容易出錯。同時改動之後,還要進行測試和部署。Apple之所以成為全球最賺錢的手機公司,關鍵在於產品的性能超越了用戶的預期,且因為大量可重用的核心領域知識,綜合成本做到了極致。
更多的時候,程序員不是在編碼,而是在閱讀程序。由於閱讀程序需要從細節和概念上理解,因此修改程序的投入會遠遠大於最初編程的投入。基於這樣的共識,讓我們操心的一系列事情,需要不斷地思考和總結使之可以重用,這就是方法論的源起。
通過財務數據分析,由於早期決策失誤和缺乏科學的軟體工程方法,我們開發了一些周期長、技術難度大且回報率極低的產品,不僅軟體難以重用,而且擴展和維護難度很大,從而導致開發成本居高不下。
顯而易見,從軟體開發來看,軟體工程與計算機科學是完全不同的兩個領域的知識。其主要區別在於人,因為軟體開發是以人為中心的過程。如果考慮人的因素,軟體工程更接近經濟學,而非計算機科學。如果不改變思維方式,則很難開發出既好賣且成本低的產品。
雖然大多數開發者都很勤奮,但其奮斗目標不是企業和個人收益最大化,而是以學習基礎技術為樂趣,極少與市場人員和用戶交流,不注重提升個人挖掘用戶需求的創造力,而是將精力用錯了地方,這是很多人一輩子也沒有認識到的深刻問題。只是表面地嘆息自己懷才不遇,甚至將自己失敗的責任推給他人。由此可見,人與人之間的差別不在於知識和經驗,而是思維方面的差異決定了每個人的未來。
4、解決之道
代碼的優劣不僅直接決定了軟體的質量,還將直接影響軟體成本。軟體成本是由開發成本和維護成本組成的,而維護成本卻遠高於開發成本,蠻力開發的現象比比皆是,大量來之不易的資金被無聲無息地吞沒,整個社會的資源浪費嚴重。
為何不將復雜的技術高度抽象呢?如果實現就能做到讓專業的人做專業的事,AWorks就是在這樣的背景下誕生的。由於其中融入了更多的軟體工程技術方法,因此就能做到將程序員徹底從非核心域中釋放出來聚焦於核心競爭力。
無論你選擇什麼晶元和任何 OS,比如,Linux 和其它任何 RTOS,只要 AWorks 支持它,就可以在目標板上實現跨平台運行。因為無論什麼 OS,它只是 AWorks 的一個組件,針對不同的 OS,AWorks 都會提供相應的適配器,那麼所有的組件都可以根據需要更換。
由於 AWorks 制定了統一的介面規范,並對各種微處理器內置的功能部件與外圍器件進行了高度的抽象,因此無論你選用的是 ARM 還是 DSP,通過「按需定製」的外設驅動軟體和相關組件,以高度復用的軟體設計原則和只針對介面編程的思想為前提,則應用軟體均可實現「一次編程、終生使用和跨平台」。基於此,進一步擴大了 AWorks 使用范圍,又發展出了代碼更小的 AMetal,AWorks 能給你帶來的最大價值就是不需要重新發明輪子。
5、叢書簡介
《面向AMetal框架與介面的編程(上)》是《嵌入式軟體工程方法與實踐叢書》中的第一套第二本書,叢書共含四套:
第一套
《程序設計與數據結構》
《面向 AMetal 框架與介面的編程》(上)
《面向對象的分析與設計》
第二套
《面向 AWorks 框架與介面的編程》(適用於各種 MCU)
《面向對象的分析與設計》
第三套
《面向 AWorks 框架與介面的編程——基於 Linux》(適用於 ARM9 以上內核)
《面向對象的分析與設計》
第四套
《C++現代程序設計》
《面向 AWorks 框架與介面的編程——基於 C++》(適用於 ARM9 以上內核)
《面向對象的分析與設計》
還在寫作中的內容包括測試與持續集成,書籍均由周立功團隊從理論知識到實踐應用的精華匯編,將來會陸續與大家見面,共同學習與探討。
③ 周立功EasyPRO編程器軟體安裝時,出現「添加root_hub id 錯誤」是怎麼回事呀如何解決
EASYPRO80B無法安裝驅動
關於EASYPRO80B編程器安裝驅動出現usb_HUBID錯誤,進行手動安裝,連接編程器設備,打開電腦設備管理器,雙擊黃色USB設備。在詳細信息裡面 USB\Vid_0471&Pid_1203\6&688A3b8&0&6,記下其中的6&688A3b8&0&6這個數值,進入EasyPROs\Driver\ZLGUSB\WinXP文件夾,右鍵編輯Vid_0471&Pid_1203.reg這個文件,將文件內Vid_0471&Pid_1203\6&688A3b8&0&6最後的這個數值用設備管理器裡面看到的數值進行替換,然後將文件夾內36fc.reg,Vid_0471&Pid_1203.reg,zlgusb.reg全合並到注冊表,並將ZLGUSB.sys文件到windows\System32\Drivers下面,ZLGUSB.inf文件COPY到windows\inf下面,重新連接編程器。USB驅動已經安裝好了。
④ USBCAN-II由USB口連後電腦,用周立功測試軟體CANtest.exe,一直是「打開設備失敗」,這是怎麼了
打開CANtest軟體後,單擊左上角「選擇設備」-選擇」USBCAN2」,即可。
周立功USBCAN盒有好多種,需要選對自己的設備型號,下圖就是「USBCAN-II+」對應的設備型號
⑤ dll文件和硬體(比如周立功的USBCANII)是怎麼關聯的
在"設備管理器"那裡右鍵點那個硬體選"更新驅動"然後找到這幾個文件,一般是只需點inf文件然後打開。就可以安裝了。
⑥ 急需,周立功EasyARM1138的詳細資料(軟體平台和逐一測試所有Demo),發至郵箱[email protected] 謝謝!啊啊
已經發到你郵箱,其中「安裝軟體」文件夾中有Iar以及驅動等的安裝和說明「EasyARM1138開發指南」中有詳細的教程而後示例的Demo;「技術資料」就不說了。
反正很全很好,如果你看了覺得好的話,記得加分哦
⑦ VC 語言實現 CAN卡上位機
有可能差的很多.......建議你先研究周立功的dll和demo程序,從他demo程序出發可能會更簡單一些
⑧ 用周立功pci5121卡時,裝好了驅動,然後准備用zlgcantest測試,但是打開設備時顯示打開設備失敗,有沒有人
1.確認一下設備管理器裡面的驅動是否裝好,即沒有黃色問號和感嘆號;
2.電腦是否只裝1張PCI-5121,因為裝2張以上,要將索引號加1;
3.是否有應用程序佔用這張PCI-5121(即已經運行了程序);
4.PCI-5121卡損壞;
另外一個注意點:確認電腦為單核CPU,因為PCI-5121對於雙核以上電腦支持不好,目前已經停產,接替其的智能卡為PCI-5010-U和PCI-5020-U(目前由於新智能卡還未銷售,故一般都是用PCI-9820I,單雙核都可以用);
⑨ USBCANii通過USB介面連接到電腦,使用周立功測試軟體ZLGCANtest.exe,提示「打開設備失敗」
檢查驅動是否裝好,即設備SYS要亮綠燈才是裝好;
設備類型是否選對。