99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

對51轉(zhuǎn)到ARM的新人的一些建議

我以前一直用的是51,不過一直是C51,對C已經(jīng)有10多年的經(jīng)驗,匯編用的很少。后來因為項目需要轉(zhuǎn)到了arm.一開始對arm什么都不懂,看了本《arm體系結(jié)構(gòu)與編程》也是云里霧里的。但是也許是因為無知者無畏吧,我直接就在mdk中建立一個工程,添加了自帶的啟動文件,然后做了個main函數(shù),里面一個死循環(huán)沒有操作任何硬件,居然跑起來了。然后以此為基礎,慢慢的開始控制GPIO和串口通信,當時突然發(fā)現(xiàn),我的項目不就是搞搞這些嗎?其他的什么運行模式、什么鏈接寄存器、什么PC寄存器關我鳥事,我只要能控制外設就行了。至于它是怎么實現(xiàn)的,那是編譯器和鏈接器的事情。

    現(xiàn)在回頭想想開發(fā)arm還是很簡單的,特別是使用mdk的話,會c也就能做一些簡單的開發(fā)了。不要被那些稀奇古怪的東西給搞糊涂了。邊開發(fā)邊學習,項目做深了,那些東西自然就懂了。我們公司來了新人,我一般就叫他做個簡單的東西,比如按鍵、串口等,做完也就差不多會了。

    羅嗦這么久說幾點建議吧:

    1.arm的匯編沒必要去精通的,能夠大概看懂就行了。我一般在調(diào)試的時候才需要看看。如果一個速度要求苛刻到需要你使用匯編的話,我認為可能你更需要的是轉(zhuǎn)變思路,修改算法。比如使用查表代替計算等。我做了5年arm開發(fā),完成了n個項目,至今沒寫過一句匯編。

    2.工業(yè)控制方面因為有實時性和成本要求,我一般不使用操作系統(tǒng),但我會自己實現(xiàn)一些內(nèi)存管理,事件管理,郵箱之類的東西。這些需要時間積累,平時寫程序注意盡量通用化,然后建立自己的庫,以后再用就爽了。以前使用過一些操作系統(tǒng),發(fā)現(xiàn)并沒有提高我的開發(fā)速度,而且還造成了調(diào)試困難的問題,出了bug找都沒法找。

    3.對于公司來說,如果項目很大需要用到操作系統(tǒng)、網(wǎng)絡、gui、文件系統(tǒng)等,自己做還不如直接買個板子,人家都已經(jīng)做好了,而且bug很少,自己只要做應用就行了。量大的話還可以定制,算上開發(fā)成本,可能更便宜。如果你是個人興趣,那當我沒說。

    4.現(xiàn)在對于外設一般都有現(xiàn)成的庫,我建議能不用還是不要用吧。因為想要用好這些庫,你必須對外設寄存器比較熟悉才行,這時候你自己寫一個就行了,而且簡單的一個寄存器賦值,函數(shù)庫往往需要調(diào)用一個函數(shù)來實現(xiàn),太奢侈了。但是對于運算庫還是要用的,比如DSP庫等,畢竟人家寫的肯定效率要高點。

    5.用好中斷,這對51和arm是一樣的。能用中斷的地方絕對不用輪詢,中斷是單片機的靈魂,你的所有程序都應該圍繞中斷展開。

    6.學好C語言,注意形成自己的編程風格,起好函數(shù)名和變量名,多寫注釋。不要怕麻煩,這些很重要,我一直認為最好的程序風格是使人不需要看注釋就能立刻理解程序的意思也就是:程序即注釋。我有時候會寫出a=b-2-1之類的東西,不要認為這很傻,其實是因為2和1分別代表了兩個東西,你直接寫成3就給理解增加了難度,而且這也不會降低效率,編譯器會把它翻譯成a=b-3的。

    7.對于C語言多羅嗦一句,用好指針,如果說中斷是單片機的靈魂,那么指針就是C的靈魂。

    總之一句話,做arm和做51差不多,關鍵還是各種外設的寄存器操作。

全部回復(20)
正序查看
倒序查看
971631040
LV.3
2
2013-09-29 16:48
mark
0
回復
dulai1985
LV.10
3
2013-09-30 13:59
@971631040
mark
LZ,看到你寫的,現(xiàn)在才開始在學STM32~~對于ARM剛?cè)腴T~~以后多提點~~
0
回復
2013-10-03 15:55

你好,請問如何動態(tài)改變CM3中斷的時間,比如用IO按鍵做中斷時間的加減。用51只要刷新定時器的高8位和低8位就可以了,但是CM3的定時器好像不好改。或者是我的方法不對。

0
回復
2013-11-05 23:54

說點不同意見吧

2、用操作系統(tǒng)對于arm類的處理器來說盡量用,大幅度的簡化程序邏輯,加快開發(fā)進度,占用資源微乎其微的。

5、除了中斷,arm大多數(shù)有dma,這個對于處理速度幫助很大,還有就是arm相比于51的片內(nèi)硬件多了太多,選擇合適的片內(nèi)外設可以極大的提高效率的。

7、能不用指針盡可能不用指針,風險偏大,差錯困難,但是必須要用的時候也別客氣。不要用遞歸或其他不確定執(zhí)行時間的編程實現(xiàn),控制風險是嵌入式開發(fā)的核心。

用arm開發(fā)絕大多數(shù)比用51更便利,用牛刀殺雞肯定更簡單。太多的時候開發(fā)的時間成本遠遠比芯片差價大,用資源豐富的芯片提高開發(fā)速度是劃算的選擇。

0
回復
wddzzj
LV.2
6
2014-03-14 16:49
@wangshujun
說點不同意見吧2、用操作系統(tǒng)對于arm類的處理器來說盡量用,大幅度的簡化程序邏輯,加快開發(fā)進度,占用資源微乎其微的。5、除了中斷,arm大多數(shù)有dma,這個對于處理速度幫助很大,還有就是arm相比于51的片內(nèi)硬件多了太多,選擇合適的片內(nèi)外設可以極大的提高效率的。7、能不用指針盡可能不用指針,風險偏大,差錯困難,但是必須要用的時候也別客氣。不要用遞歸或其他不確定執(zhí)行時間的編程實現(xiàn),控制風險是嵌入式開發(fā)的核心。用arm開發(fā)絕大多數(shù)比用51更便利,用牛刀殺雞肯定更簡單。太多的時候開發(fā)的時間成本遠遠比芯片差價大,用資源豐富的芯片提高開發(fā)速度是劃算的選擇。
受教了
0
回復
2014-04-15 13:54
學好指針,推薦一本書吧,,
0
回復
2014-04-16 08:34
@sherlocked
學好指針,推薦一本書吧,,
指針要會用,但是盡量少用
0
回復
2014-04-16 12:28
@wangshujun
指針要會用,但是盡量少用
這又是怎么回事啊
0
回復
nyfddz
LV.1
10
2014-04-26 05:53
@sherlocked
[圖片]這又是怎么回事啊

三人行必有我?guī)?

謝謝

0
回復
2014-04-26 10:24
讀此文,有所獲,感恩!
0
回復
土土豆
LV.1
12
2014-05-04 22:47
學習了,謝謝分享。
0
回復
2015-01-15 09:50
@wangshujun
指針要會用,但是盡量少用
我也想知道這個是為什么
0
回復
苑留記
LV.8
14
2015-01-15 11:42

我頂下吧,唉感覺貌似對我也沒用

0
回復
尤小翠
LV.7
15
2015-01-15 12:27

對于常量 如果是有意義的最好給#define一下

比如 0x80 || 0x02 這種經(jīng)過長時間就忘記是啥了

0
回復
wangshujun
LV.8
16
2015-01-15 17:25
@又一個暑假
我也想知道這個是為什么
指針能帶給c程序極大的靈活性和效率,但是非常容易出現(xiàn)嚴重和隱蔽的錯誤
0
回復
a2895812
LV.2
17
2015-01-16 10:17
@又一個暑假
我也想知道這個是為什么

結(jié)構(gòu)不復雜的時候指針必要性不大,只有在數(shù)據(jù)結(jié)構(gòu)或程序結(jié)構(gòu)到一定規(guī)模時指針才能體現(xiàn)他的必要性。舉個不恰當?shù)睦樱热缥以诳碈M3權威指南,其中有第四章第一節(jié)第二小節(jié):通用目的的寄存器R8-R12;可以比喻為一個叫“CM3權威指南”的大的數(shù)據(jù)(庫),有一級指針“章”,二級指針“節(jié)”,三級指針“小節(jié)”,目的數(shù)據(jù)“通用目的的寄存器R8-R12”。這樣我們是不是可以很方便的用“章”“節(jié)”小節(jié)“很方便的查找到我們需要的東西?這就是我理解的指針的意義。

     至于很多時候為什么不需要指針這個問題,就像你寫個800字的作文,需要什么:”章“”節(jié)“嗎?給一個變量定義一個指針還不如給他預定義一個別名來的實在。給一個一維數(shù)組定義一個指針還不如直接訪問這個數(shù)組來的方便,反正他們實際操作的時候都是一樣的,自己怎么順手就怎么來。

0
回復
wfc0312
LV.5
18
2015-03-18 08:17
@尤小翠
對于常量如果是有意義的最好給#define一下比如0x80||0x02這種經(jīng)過長時間就忘記是啥了
好吧, 我當年就這么寫的。現(xiàn)在已經(jīng)完全看不懂自己的代碼了。
0
回復
dxsmail
LV.11
19
2015-03-18 08:37
很好的經(jīng)驗。。。有人帶入門就比較容易了。。。
0
回復
duhanyu
LV.2
20
2015-03-20 10:17

之間用了一次STM32,學的一知半解,一般都是看使用手冊和開別人例程

想系統(tǒng)的了解ARM開發(fā),樓主有好的書推薦么?

0
回復
2016-03-01 11:26
真是對于新人非常寶貴的意見呢~本帖已經(jīng)由小編整理成技術文章啦~感謝樓主和大家的積極討論與貢獻~
0
回復
發(fā)
主站蜘蛛池模板: 久久久久久国产精品免费播放 | 亚洲精品xx| 天天宗合 | 亚洲一区欧美一区 | 亚洲性AV网站 | 亚洲同性男gv网站search | 亚洲色成人WWW永久网站 | 亚洲黄色性视频 | 91麻豆精品国产自产在线观看一区 | 91免费进入| omofun动漫在线观看 | 欧美黑人欧美精品刺激 | 在线不卡欧美精品一区二区三区 | 精品爆乳一区二区三区无码AV | 亚洲xxxx3d | 清纯女学生强制中出在线观看 | 欧美日产国产新一区 | 国产亚洲精品久久久久久青梅 | 丰满的熟女爽死你 | 99久久久国产 | 大肉大捧一进一出好爽 | 日本一二不卡 | 这里只有精品在线观看 | 午夜狠狠干 | av影视在线播放 | 国产精品色在线 | 国产日韩二区 | 91精品国产91久久 | 精品无码在线播放 | 国外AV无码精品国产精品 | 玖玖精品在线视频 | 久草www| 精品国产乱码一区二区三区麻豆 | 三级毛毛片 | 中出乱码av亚洲精品久久天堂 | 色呦呦麻豆 | 无码专区无码专区视频网址 | 夜色太晚 | 在线视频中文 | xxx国产在线观看 | 无码少妇人妻专区在线视频 |