91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【大神課堂】如何完美避過嵌入式的深坑

GReq_mcu168 ? 來源:未知 ? 作者:steve ? 2018-04-22 16:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這次是要搭一個CAN、RS422的通訊平臺,包括硬件環(huán)境和上層協(xié)議的控制邏輯。好久不做這種純技術(shù)的工作了,我走了不少彎路,又一次誤入嵌入式的深淵……很慚愧。

硬件方面,買的是ZLG的板子,我沒想太多以為走程序就可以了,可是,國企,唉,最后還是自己做的線纜,這里耽誤了一天的功夫……

還好,簡單的活還是會的,用萬用表測引腳、接點的對應(yīng)關(guān)系,飛線,不過焊線功夫很撮,我還是老毛病想著只熔一點,其實熔一長截再把線對上就方便多了嘛!焊好后又測了一遍,就插上板卡了。

接下來就很沒頭腦了,板卡自帶的調(diào)試工具不知道用,也不知道線纜是不是有問題?,F(xiàn)在想來,其實很簡單的——我就看了一下板卡驅(qū)動API說明,另外看了一點CAN規(guī)范的說明,連調(diào)試工具界面上的驗收碼、屏蔽碼、幀ID、定時器等等都不懂,就開始蒙,哪有這樣的!書倒是有,但是內(nèi)容也多,我也沒想著看,就繼續(xù)一邊看調(diào)試工具的源代碼,一邊看應(yīng)用協(xié)議,其實沒什么收獲,花了兩天時間,就是把通訊平臺的基本框架搭了起來而已,嚴(yán)重的偏題……

到了第3天,我開始去網(wǎng)上查資料,突然意識到搞硬件的,都一個核心,所謂的控制器,也就是板卡的芯片是關(guān)鍵!于是開始以SJA1000為重點搜索,意識到一個嚴(yán)重的缺陷:我所有的困惑都在于對于這款芯片的基本操作原理不清楚!而且,芯片功能雖然很多,但是所謂“板卡”,就已經(jīng)把很多方面封裝到了驅(qū)動函數(shù)里面,只留下一些關(guān)鍵的知識需要去掌握。比如CAN控制器SJA1000,工程師需要理解的核心知識就是ID的驗收,也就是地址匹配的原理和應(yīng)用方法。花了半天時間把這部分理解、編程、實驗驗證。

但是,出現(xiàn)新情況:應(yīng)用給的例子與實際結(jié)果不符!

我嘗試去發(fā)現(xiàn)一些ID匹配的規(guī)律,未果,抓狂。期間靈感迸發(fā),想到一個窮舉性的辦法,很快把2^11個ID跑了一遍,抓出匹配的,從而發(fā)現(xiàn)了規(guī)律,但是按照應(yīng)用的規(guī)定、板卡的API說明、以及書中CAN的規(guī)范,無法理解。。。。到底是哪個出了錯??

我繼續(xù)實驗板卡的例子程序,乃至機器數(shù)的big endian、little endian都懷疑了一遍,板卡API說明和書中CAN規(guī)范是吻合的。

我擴大戰(zhàn)線,把驗收的兩種方式都看了一遍,從標(biāo)準(zhǔn)幀又看到了擴展幀,認定了應(yīng)用規(guī)定的配置下,標(biāo)準(zhǔn)幀的11位驗收是不可能得到實際中的結(jié)果的。翻PDF間,突然意識到一個矛盾的地方:“應(yīng)用采用PeliCAN方式……使用標(biāo)準(zhǔn)幀”——這矛盾嘛!PeliCAN工作模式是支持?jǐn)U展幀的好不好?!!

于是,恍然……憤怒……泄憤……重新在草稿紙上演算,釋然。

接下來,才真正進入正題:CAN上層協(xié)議的編寫、調(diào)試。無法是如何制定ID地址格式,數(shù)據(jù)幀組裝、拆解、校驗和計算之類的。這時,我已經(jīng)開始意識到:應(yīng)用層給的東西,太不可靠了。沒有任何設(shè)計說明,我就小心翼翼的讀了一下幀組裝和校驗的代碼,一邊加注釋,花了一上午時間才看懂,也知道它可疑。于是另外寫了一個,單步調(diào)試走了一遍,覺得還不可靠,又用草稿紙演算了一把,加了兩個關(guān)于幀編號和尾幀長度的loop invariant斷言,才放心,此時已經(jīng)下午了,咬咬牙,接著調(diào)試,晚飯時候才通過所有斷言。再挑了5個測試用例測了一遍,果然沒問題了,至此確認:在某些特殊情況下,確實它錯了。

吃完晚飯,想剛才寫loop invariant的痛苦,有一次意識到:寫程序,尤其是這種算法類程序,應(yīng)該多用草稿紙演算的,效率可以更高些。。。。我本來知道應(yīng)該這么做的,都怪當(dāng)時急紅了眼……絆蠻……

總結(jié):什么樣的活,有什么樣的工作思路、工作模式。

模式1:關(guān)于物資—— 一般的東西,按程序走,不用費神;重要事項,自己動手,豐衣足食。

模式2:關(guān)于硬件—— 搞硬件的工程師,用芯片是基本功!要靜得下心,看資料,理解快;有問題,想原理。

模式3:關(guān)于軟件開發(fā)——基本功的問題,好好看書、練習(xí);設(shè)計的問題,多總結(jié),實用即可; 算法、調(diào)試的問題,多用草稿紙!


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5206

    文章

    20572

    瀏覽量

    336131

原文標(biāo)題:我又掉進了嵌入式的深坑...

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    飛凌嵌入式亮相德國紐倫堡embedded world 2026,深耕全球嵌入式AI市場!

    2026年3月10日,全球嵌入式技術(shù)領(lǐng)域的年度盛會——embedded world 2026國際嵌入式展覽會,在德國紐倫堡會展中心盛大啟幕。飛凌嵌入式攜多款重磅新品及全場景解決方案再一次隆重參展
    的頭像 發(fā)表于 03-11 16:37 ?1w次閱讀
    飛凌<b class='flag-5'>嵌入式</b>亮相德國紐倫堡embedded world 2026,深耕全球<b class='flag-5'>嵌入式</b>AI市場!

    什么是嵌入式應(yīng)用開發(fā)?

    概述 所謂的嵌入式應(yīng)用開發(fā)就是在嵌入式操作系統(tǒng)下進行開發(fā)、軟硬件綜合開發(fā) ?嵌入式應(yīng)用開發(fā)?是指在嵌入式操作系統(tǒng)下進行開發(fā),包括系統(tǒng)化設(shè)計指導(dǎo)下的硬件和軟件綜合研發(fā)。
    發(fā)表于 01-12 16:13

    系統(tǒng)嵌入式的學(xué)習(xí)路線

    嵌入式技術(shù)是各種電子產(chǎn)品的核心技術(shù),也是工業(yè)4.0、遠程醫(yī)療、3D打印等新興產(chǎn)業(yè)的核心技術(shù),具有廣闊的發(fā)展前景。很多計算機、電子信息類專業(yè)的學(xué)生都想把嵌入式開發(fā)作為自己的職業(yè)目標(biāo),但是因為嵌入式涉及
    發(fā)表于 12-16 07:49

    什么是嵌入式操作系統(tǒng)?

    用 FreeRTOS/UCOS?,核心差異在資源適配和實時性: 舉個嵌入式開發(fā)中的實際例子: 用 STM32F4 做一個智能小車,需要同時做 3 件事:① 讀取超聲波傳感器數(shù)據(jù)(障)、② 接收藍牙
    發(fā)表于 12-09 10:33

    嵌入式與FPGA的區(qū)別

    \"嵌入式開發(fā)門檻低、就業(yè)廣,適合轉(zhuǎn)行;FPGA技術(shù)深、薪資高,但要求學(xué)歷和數(shù)學(xué)功底。選哪個?看你的基礎(chǔ)和職業(yè)目標(biāo)。\" ?我們先來明白下兩者區(qū)別在哪? ?1、嵌入式:分兩部分
    發(fā)表于 11-20 07:12

    ElfBoard科普課堂|為什么C語言在嵌入式技術(shù)領(lǐng)域中的地位難以撼動?

    嵌入式技術(shù)領(lǐng)域,“C語言與硬件”的組合,常被比作計算機體系中的“二進制與晶體管”——它們是無數(shù)智能設(shè)備穩(wěn)定運行的底層支柱,貫穿了嵌入式應(yīng)用的核心環(huán)節(jié)。
    的頭像 發(fā)表于 11-06 10:00 ?7053次閱讀
    ElfBoard科普<b class='flag-5'>課堂</b>|為什么C語言在<b class='flag-5'>嵌入式</b>技術(shù)領(lǐng)域中的地位難以撼動?

    AMD 2025.1版嵌入式軟件和工具的新增功能

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開發(fā)而打造的綜合平臺,全面加速概念構(gòu)想到部署落地。
    的頭像 發(fā)表于 08-15 15:32 ?1373次閱讀

    【展會回顧】2025年MCU及嵌入式技術(shù)論壇暨第五屆電機驅(qū)動與控制技術(shù)論壇完美閉幕

    2025年MCU及嵌入式技術(shù)論壇暨第五屆電機驅(qū)動與控制技術(shù)論壇完美閉幕
    的頭像 發(fā)表于 07-28 17:19 ?1309次閱讀
    【展會回顧】2025年MCU及<b class='flag-5'>嵌入式</b>技術(shù)論壇暨第五屆電機驅(qū)動與控制技術(shù)論壇<b class='flag-5'>完美</b>閉幕

    聚徽廠家嵌入式工業(yè)平板:低功耗技術(shù)與卓越性能的完美融合

    低功耗技術(shù)與卓越性能的完美融合,為工業(yè)領(lǐng)域用戶帶來了更優(yōu)質(zhì)、高效的設(shè)備解決方案。 聚徽嵌入式工業(yè)平板的低功耗技術(shù)是其核心亮點之一。在硬件層面,聚徽嚴(yán)格篩選低功耗的核心組件。處理器作為平板的 “大腦”,聚徽依據(jù)
    的頭像 發(fā)表于 07-01 17:14 ?737次閱讀

    Linux嵌入式和單片機嵌入式的區(qū)別?

    Linux嵌入式與單片機嵌入式在多個方面存在顯著的區(qū)別,以下是詳細的比較和歸納: 一、基本概念 1. Linux嵌入式: 定義:將Linux操作系統(tǒng)運行在嵌入式設(shè)備上的一種配置。
    發(fā)表于 06-20 09:46

    【昱櫟小課堂】一篇快速了解嵌入式、單片機、STM32

    嵌入式首先我們來看一下關(guān)于“嵌入式”,官方定義是用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置。專業(yè)的名詞或許有點晦澀難懂,舉個栗子:個人通信和娛樂系統(tǒng):手機、數(shù)碼相機、音樂播放器、可穿戴電子設(shè)備
    的頭像 發(fā)表于 05-16 14:33 ?705次閱讀
    【昱櫟小<b class='flag-5'>課堂</b>】一篇快速了解<b class='flag-5'>嵌入式</b>、單片機、STM32

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    隨著物聯(lián)網(wǎng)、智能硬件的發(fā)展,嵌入式開發(fā)成為熱門技能之一。以下將為初學(xué)者提供一份詳細的嵌入式開發(fā)入門指南,涵蓋學(xué)習(xí)路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應(yīng)用嵌入式系統(tǒng)
    發(fā)表于 05-15 09:29

    飛凌嵌入式2025嵌入式及邊緣AI技術(shù)論壇圓滿結(jié)束

    飛凌嵌入式「2025嵌入式及邊緣AI技術(shù)論壇」在深圳深鐵皇冠假日酒店盛大舉行,此次活動邀請到了200余位嵌入式技術(shù)領(lǐng)域的技術(shù)專家、企業(yè)代表和工程師用戶,共享嵌入式及邊緣AI技術(shù)的盛宴!
    的頭像 發(fā)表于 04-28 13:57 ?4267次閱讀
    飛凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及邊緣AI技術(shù)論壇圓滿結(jié)束

    飛凌嵌入式2025嵌入式及邊緣AI技術(shù)論壇圓滿結(jié)束

    4月22日下午,備受矚目的飛凌嵌入式「2025嵌入式及邊緣AI技術(shù)論壇」在深圳深鐵皇冠假日酒店盛大舉行,此次活動邀請到了200余位嵌入式技術(shù)領(lǐng)域的技術(shù)專家、企業(yè)代表和工程師用戶,共享嵌入式
    的頭像 發(fā)表于 04-27 11:55 ?916次閱讀
    飛凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及邊緣AI技術(shù)論壇圓滿結(jié)束

    嵌入式適合自學(xué)嗎?

    嵌入式適合自學(xué)嗎?其實并不建議大家自學(xué)嵌入式,主要有以下原因。 一)學(xué)習(xí)難度大 1)知識體系復(fù)雜:嵌入式系統(tǒng)是一個復(fù)雜的領(lǐng)域,涉及到計算機、電子、通信等多學(xué)科知識,需要學(xué)習(xí)者具備扎實的軟硬件
    發(fā)表于 04-27 09:54