一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

關(guān)于MCU工程師項(xiàng)目開發(fā)感悟經(jīng)驗(yàn)詳解

MCU開發(fā)加油站 ? 來源:CSDN技術(shù)社區(qū) ? 作者:嵌入式ARM 最后一個(gè) ? 2021-04-12 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天跟大家分享一位嵌入式工程師的項(xiàng)目開發(fā)感悟,寫得非常的接地氣,學(xué)習(xí)和開發(fā)過程可以進(jìn)行相應(yīng)參考!自從我(原作者)去年被調(diào)到了嵌入式組,終于和以前研究生階段搞的開發(fā)經(jīng)歷一致了。

但以前用的是ADS工具,還有用Linux平臺(tái)上的交叉編譯工具鏈,還有看linux 內(nèi)核的驅(qū)動(dòng)代碼。

現(xiàn)在搞起對(duì)日外包了。日本人不愛用linux,凡事總是搞出自己的一套?,F(xiàn)在用的ut-kernel(看成一個(gè)RTOS就好), 開發(fā)工具則有RVDS,DS-5,MTK和IAR, 硬件調(diào)試器有Dstream, Realview ICE?,F(xiàn)在對(duì)應(yīng)的是富士通半導(dǎo)體部門,做的MCU(基于arm cm3,cm4, ca5核的富士通芯片) 的軟件開發(fā)測(cè)試。

本來自己的想法是搞搞嵌入式,熟悉下硬件東西,這樣可以加深的我的底層編程功底。

以下是幾個(gè)階段的工作感悟:

1ut-kernel/FA5 測(cè)試修復(fù)BUG工作:

日本人做的ut-kernel屬于嵌入式RTOS范疇,這塊同類的產(chǎn)品有uc/os, vxworks等,共同特征是高度可裁減,想塞到片內(nèi)那有限的容量?jī)?nèi)。還有實(shí)時(shí)性好吧。實(shí)時(shí)性不僅表現(xiàn)在可搶占式進(jìn)程調(diào)度,還有快速響應(yīng)中斷的能力。

RTOS的設(shè)計(jì)畢竟和通用操作系統(tǒng)(linux)的設(shè)計(jì)思想還是有很大的差別的。感覺這個(gè)領(lǐng)域更適合微內(nèi)核結(jié)構(gòu)的發(fā)揮,宏內(nèi)核結(jié)構(gòu)如linux可裁剪性方面是個(gè)缺點(diǎn)。這個(gè)ut-kernel算是代碼量比較簡(jiǎn)單,里面的修復(fù)BUG工作我覺得也不難,期間有timer相關(guān)的BUG,最后一看發(fā)現(xiàn)timer相關(guān)的代碼根本沒改造。

印象深刻的是后期做性能測(cè)試,對(duì)FA5和FM3芯片做比較時(shí),因?yàn)閮蓚€(gè)各基于Cortex-m3和cortex-a5架構(gòu),架構(gòu)不同,發(fā)現(xiàn)這里面還是很有意思的。一開始FA5的性能沒有發(fā)揮出來,找到原因,cache沒打開。高檔次的CPU是要靠cache發(fā)揮威力的。

于是查找芯片手冊(cè),正確地初始化了cache并打開它。后來又發(fā)現(xiàn)還有些功能如指令分支預(yù)測(cè)等這些也得打開,于是又修改了相關(guān)寄存器。完了,感覺FA5的性能比以前好了很多。于是對(duì)CM3和CA5的架構(gòu)差別方面,我又充滿了興趣。我覺得知道這些,對(duì)以后并行多核程序開發(fā),物聯(lián)網(wǎng)領(lǐng)域的一些東西都有幫助。

感覺FA5這種檔次高的芯片應(yīng)該用到手持設(shè)備開發(fā)中去。那些工控級(jí)別的應(yīng)用應(yīng)該是FM3這類51單片機(jī)取代者的天下。ut-kernel是配著FM3芯片開發(fā)的,感覺配上FA5的話,ut-kernel架構(gòu)就應(yīng)該進(jìn)行大改變了,或者直接用linux等內(nèi)核比較好。

期間做了個(gè)初始化外接的DDR芯片工作,我們直接從UBOOT社區(qū)那邊拷過來該芯片的初始化代碼。然后針對(duì)該代碼做成一個(gè)具有初始化DDR單一功能的AXF可執(zhí)行文件。以此來方便我們測(cè)試。還有測(cè)試中間差點(diǎn)鬧出來一個(gè)大問題,當(dāng)時(shí)日方客戶見我們的初始化DDR代碼中還殘留有GPL版權(quán)信息,他們大怒,拷貝代碼慣了,對(duì)版權(quán)從來沒怎么看重。日本人對(duì)這塊比較看重,聽說在日本下載盜版音樂好像要被起訴。

下來經(jīng)過這場(chǎng)事,我們對(duì)版權(quán)方面的東西特別敏感,搞好代碼后,首先要在代碼包中掃描版權(quán)信息。

2micro.NET framework 在FM3平臺(tái)上的移植

這個(gè)項(xiàng)目做起來還是非常有發(fā)展前途的??纯船F(xiàn)在物聯(lián)網(wǎng)炒得多么火熱就知道了,可惜做了不到一半,日本人就給咔嚓掉了。不是我們做的不好,而是他們又想讓我們做別的是事情了。做對(duì)日外包就是這樣,沒自主權(quán),得按別人指令辦事。這個(gè)項(xiàng)目的做的過程中,終于我對(duì)串口,timer,GPIO移植熟悉了很多,自己也做了些特性改造。而且我也會(huì)根據(jù)開發(fā)板的板子布線原理圖以及芯片手冊(cè)來寫一些簡(jiǎn)單的驅(qū)動(dòng)代碼了。

還有對(duì)scatfile,分散加載也熟悉了很多,對(duì)于MDK, RVDS,DS-5調(diào)試工具以及ICE,Dstream等硬件調(diào)試器的靈活運(yùn)用也掌握了不少。

3ut-kernel/M3及M4F的測(cè)試

我親自參與并熟悉了怎么在片外再擴(kuò)接一個(gè)SRAM,因?yàn)槲覀兊臏y(cè)試代碼體積還比較龐大,無法放到片內(nèi)中。想想自己以前本科學(xué)電子的,那時(shí)對(duì)示波器,萬用電表掌握的特別熟練?,F(xiàn)在卻全部都忘完了(因?yàn)楹髞硪恢倍几愕氖羌冘浖?/p>

看到項(xiàng)目組同事在使用示波器時(shí),我想到自己還是有基礎(chǔ)的,快速學(xué)習(xí)能力還是有的。因?yàn)樽鲵?qū)動(dòng)開發(fā),不可避免要用到示波器等這些設(shè)備??上М?dāng)時(shí)外接SRAM硬件并沒多大問題,而且示波器等還是借的,所以我沒太多機(jī)會(huì)熟悉這些硬件測(cè)量設(shè)備。

想想自己本科數(shù)字電路,模擬電路等一些硬件課程,實(shí)驗(yàn)課程都學(xué)的不錯(cuò)的。哎,如果我這些功底都恢復(fù)并加強(qiáng)的話,那么自己的底層軟件編程也會(huì)加強(qiáng)不少,最主要的是編程視野也會(huì)相當(dāng)開闊。畢竟最高層的軟件算法分析設(shè)計(jì),我研究生階段都掌握了。沒事以后會(huì)有機(jī)會(huì)繼續(xù)窺探到這一領(lǐng)域的。

可惜外接ram又不穩(wěn)定,后來我們又不得不移到片內(nèi)進(jìn)行測(cè)試。這時(shí)為了能把程序放到片內(nèi)去跑,就要對(duì)ut-kernel里面占用內(nèi)存空間的地方進(jìn)行剪裁了,好在ut-kernel都是可裁剪的,在我們裁剪完之后,發(fā)現(xiàn)放到片內(nèi)ram中測(cè)試比片外ram穩(wěn)定多了。還有對(duì)嵌入式系統(tǒng)的軟件BUG調(diào)試也有所掌握,感覺嵌入式里面的軟件調(diào)試時(shí),發(fā)現(xiàn)東西跑飛了。

這時(shí)可以有多個(gè)途徑查找。也許是沒禁掉看門狗,或者那些pend_sv中斷在內(nèi)存中根本沒有初始化正確, 或者中斷向量表被沖掉了,或者對(duì)照著匯編指令看看寄存器狀態(tài)有沒有正確。要卡住出問題的地方來進(jìn)行多方面原因的判斷調(diào)查。另外也要結(jié)合map文件,看看地址鏈接和加載得是否都正確,有沒有越界。

在測(cè)試M4F FPUT時(shí),曾經(jīng)發(fā)現(xiàn)一個(gè)詭異現(xiàn)在,一些調(diào)用子函數(shù)換個(gè)先后順序去執(zhí)行時(shí),就崩潰了,再換過了就不崩潰了。這時(shí)我調(diào)查了下,發(fā)現(xiàn)崩潰前代碼執(zhí)行時(shí)用的棧遭到了破壞。

具體我往前推,發(fā)現(xiàn)在調(diào)用某個(gè)API返回之后,就會(huì)破換掉待返回的正確棧上的值。具體再調(diào)查時(shí),發(fā)現(xiàn)是執(zhí)行某條匯編指令時(shí),棧遭到了破壞。不過這時(shí)候這個(gè)調(diào)查上面中止了,事情實(shí)在太多了又去做其他事情了。不過我相信只要掌握了方法和本質(zhì),這些問題都只是時(shí)間問題。
編輯:lyn

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

    關(guān)注

    146

    文章

    17933

    瀏覽量

    363261
  • 嵌入式
    +關(guān)注

    關(guān)注

    5147

    文章

    19619

    瀏覽量

    316502

原文標(biāo)題:MCU工程師幾個(gè)階段的開發(fā)感悟

文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    問,成為硬件工程師需要幾只手?#硬件工程師 #YXC晶振 #揚(yáng)興科技 #搞笑

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2025年04月25日 17:15:37

    如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師

    如何成為一名合格的北向應(yīng)用開發(fā)工程師 在快速發(fā)展的軟件開發(fā)領(lǐng)域,北向應(yīng)用開發(fā)工程師是一個(gè)專注于系統(tǒng)級(jí)應(yīng)用
    發(fā)表于 04-23 06:46

    一招拿捏電子工程師#被AI拿捏了 #電子工程師 #電子電工

    電子工程師
    安泰小課堂
    發(fā)布于 :2025年03月25日 17:30:51

    如何成為嵌入式開發(fā)工程師

    如何成為嵌入式開發(fā)工程師? 成為嵌入式開發(fā)工程師通常需要掌握一系列技能和知識(shí),并且在實(shí)踐中不斷積累經(jīng)驗(yàn)。以下是一些基本步驟和建議: 1. 基
    發(fā)表于 02-19 10:39

    電子工程師的電源設(shè)計(jì)經(jīng)驗(yàn)分享

    作為一名電子工程師,電源設(shè)計(jì)一直是我在工作中重點(diǎn)關(guān)注的領(lǐng)域。電源設(shè)計(jì)不僅需要扎實(shí)的理論基礎(chǔ),還需要豐富的實(shí)踐經(jīng)驗(yàn)。以下是我多年工作中總結(jié)的一些經(jīng)驗(yàn): 一、電源設(shè)計(jì)的核心理念 電源設(shè)計(jì)的核心是高效
    的頭像 發(fā)表于 01-21 15:53 ?465次閱讀

    電子工程師的PCB設(shè)計(jì)經(jīng)驗(yàn)

    本文分享了電子工程師在PCB設(shè)計(jì)方面的經(jīng)驗(yàn),包括PCB布局、布線、電磁兼容性優(yōu)化等內(nèi)容,旨在幫助初學(xué)者掌握PCB設(shè)計(jì)的關(guān)鍵技術(shù)。
    的頭像 發(fā)表于 01-21 15:15 ?1383次閱讀

    電子工程師的電源設(shè)計(jì)經(jīng)驗(yàn)

    本文分享了電子工程師在電源設(shè)計(jì)方面的經(jīng)驗(yàn),包括電源電路的設(shè)計(jì)要點(diǎn)、電源管理芯片的選擇、電源完整性優(yōu)化等內(nèi)容,旨在幫助初學(xué)者掌握電源設(shè)計(jì)的關(guān)鍵技術(shù)。
    的頭像 發(fā)表于 01-21 15:14 ?465次閱讀

    電子工程師的電路設(shè)計(jì)經(jīng)驗(yàn)分享

    本文分享了電子工程師在電路設(shè)計(jì)方面的豐富經(jīng)驗(yàn),包括項(xiàng)目開發(fā)步驟、電路設(shè)計(jì)核心思想、元器件選擇與優(yōu)化等內(nèi)容,旨在幫助初學(xué)者快速提升電路設(shè)計(jì)能力。
    的頭像 發(fā)表于 01-21 15:13 ?641次閱讀

    電子工程師經(jīng)驗(yàn)分享

    電子工程師在實(shí)際工作中積累了豐富的經(jīng)驗(yàn),這些經(jīng)驗(yàn)對(duì)于新手工程師和電子專業(yè)的學(xué)生具有重要的參考價(jià)值。 一、電路設(shè)計(jì)經(jīng)驗(yàn) 電路設(shè)計(jì)核心思想 電路
    的頭像 發(fā)表于 01-14 10:14 ?573次閱讀

    如何成為一名合格的北向應(yīng)用開發(fā)工程師

    在快速發(fā)展的軟件開發(fā)領(lǐng)域,北向應(yīng)用開發(fā)工程師是一個(gè)專注于系統(tǒng)級(jí)應(yīng)用開發(fā)的高需求職位。 以下是成為一名合格的KaihongOS北向應(yīng)用開發(fā)
    發(fā)表于 01-10 10:00

    為什么嵌入式驅(qū)動(dòng)開發(fā)工程師可以拿高薪?

    為什么嵌入式驅(qū)動(dòng)開發(fā)工程師可以拿高薪? 嵌入式驅(qū)動(dòng)開發(fā),屬于需求量大、薪資斷崖式升高的熱門崗位,在市場(chǎng)的發(fā)展驅(qū)動(dòng)下成為“風(fēng)口”。從市場(chǎng)的整體需求來看,嵌入式系統(tǒng)的應(yīng)用隨著5G、物聯(lián)網(wǎng)、大數(shù)據(jù)、云
    發(fā)表于 01-07 16:56

    KiCon 演講回顧(十三):嵌入工程師的硬件夢(mèng)之 KiCad 經(jīng)驗(yàn)項(xiàng)目分享

    “ ?在KiCon Asia 2024,我們有幸聽到了@IAMLIUBO 的分享——嵌入式工程師的硬件夢(mèng)之KiCad經(jīng)驗(yàn)分享。 ? ” 以下是完整演講視頻: 為什么選擇KiCad? 跨平臺(tái)支持
    的頭像 發(fā)表于 12-09 01:02 ?566次閱讀
    KiCon 演講回顧(十三):嵌入<b class='flag-5'>工程師</b>的硬件夢(mèng)之 KiCad <b class='flag-5'>經(jīng)驗(yàn)</b>和<b class='flag-5'>項(xiàng)目</b>分享