ARM演算法挖礦
1. ARM嵌入式系統及原理
arm是精簡指令集,也就是RISC,所有的指令長度都是相同的。
arm處理器,不能直接訪問外存,只能通過寄存器來訪問外存。所有的指令都是真對那30幾個寄存器進行操作的。
這些東西網上有很多的。如果你對這個東西不感興趣,只是為了考試。還不如不要學這個了。
要想學好,最好是買一個開發板,自已去移植幾次linux操作系統,自已給硬體寫幾個小的驅動程序。然後你就明白arm晶元的特殊功能寄存器都有那些了,也明白這些匯編指令都是干什麼的了。
要不然還不如不要學這東西,浪費生命。
我們學習是為了興趣,學會了開心。不是為了考試。學的東西是為了用。如果沒有學了不用,或者只是為了完成任務。那麼不學也罷。
再一個,考試的題目大多數都和實際使用有很大的差距,學校學習知識的心情和在工作中學習知識的心情也不會一樣。所以對知識作用的認識也不會一樣。
2. 在arm上做linux開發,貌似只要把linux系統移植進去就,剩下的開發就不難了....
如果你水平很高,那確實就是這樣。移植進去就成,開發就隨便用用系統提供的功能就好了。
但是你水平不高的話,你就會覺得困難,因為首先移植就有很多問題,不懂得話,能移植,不工作的地方不好追,不好修補。移植好了不知道怎麼用,能用的話不知道有沒有用對,出了問題不知道是系統問題還是你嵌入的程序段問題。
那你要水平高的話,你需要會什麼呢?需要對unix/linux有了解,熟悉Arm架構,熟悉嵌入式開發,尤其要熟悉跟蹤調試,要熟悉操作系統的知識,要熟悉調度和硬中斷,就是熟悉計算機結構,要熟悉C/C++,要知道一點匯編,要知道一點硬體知識(數字電路方面),要熟悉文件系統和SD介面,USB介面,要熟悉Arm的各種外設介面。
然後linux開發,你要熟悉臨界段,你要熟悉互斥,任務,要熟悉上下半部分中斷,要熟悉郵箱,要熟悉信號量,要熟悉優先順序等等等等。。
多麼?其實列的還不算全,你還要熟悉演算法,可重用架構,系統設計方面等等。。。
唉。。。所以說難者不會,會者不難,就是這個樣子。
3. 如何在arm上進行深度學習演算法開發
AlphaGo依靠精確的專家評估系統(value network):專家系統是一個智能計算機程序系統,其內部含有大量的某個領域專家水平的知識與經驗,能夠利用人類專家的知識和解決問題的方法來處理該領域問題。
基於海量數據的深度神經網路(policy network):多層的好處是可以用較少的參數表示復雜的函數。在監督學習中,以前的多層神經網路的問題是容易陷入局部極值點。如果訓練樣本足夠充分覆蓋未來的樣本,那麼學到的多層權重可以很好的用來預測新的測試樣本。但是很多任務難以得到足夠多的標記樣本,在這種情況下,簡單的模型,比如線性回歸或者決策樹往往能得到比多層神經網路更好的結果。非監督學習中,以往沒有有效的方法構造多層網路。多層神經網路的頂層是底層特徵的高級表示,比如底層是像素點,上一層的結點可能表示橫線,三角; 而頂層可能有一個結點表示人臉。
傳統的人工智慧方法蒙特卡洛樹搜索的組合:是一種人工智慧問題中做出最優決策的方法,一般是在組合博弈中的行動(move)規劃形式。它結合了隨機模擬的一般性和樹搜索的准確性。
4. 如何將matlab演算法程序生成的C文件嵌入到ARM
這屬於matlab與C++混合編程的問題,沒有必要非得把matlab腳本轉換為顯式的C++代碼,可以將你需要的matlab函數,在matlab平台下編譯為動態鏈接庫mex,然後在C++調用該動態鏈接庫即可。需要注意的是所有相關的m文件都要打包到動態鏈接庫里
5. 矩陣演算法是什麼回事,在arm中怎麼實現,謝謝
矩陣演算法最基本的就是加,減,乘,求逆,求特徵值,特徵向量。這些求法都有很詳細的定義,只不過他們都是基於數學表達式。演算法是個純數學的東西,要在arm里跑,需要轉換成代碼,arm一般都是跑C語言哈,簡單來說就是用C語言表達幾個數學的式子,你把加減乘求逆等,寫成不同的函數,調用就很方便了哈。另外arm是個硬體的東西,你寫的C的代碼應該要能適應你的arm硬體哈,比如浮點,位數,寄存器等哈。
另外,矩陣最基本的就是《線性代數》哈,可以看一下。
6. 能不能幫我把裡面的幾個演算法改成用ARM匯編來實現
去掉你那些printf(),還有getchar(),這些通用輸入輸出設備的函數的話,可以幫你編出來。這些都是包含有系統調用的。ARM應用很少會去直接調用這些函數。
你可以直接建立一個C工程,包含stdio.h 然後用ADS1.2編譯試試,
7. 在手機上挖比特幣的問題 我用的arm miner free,它下面顯示了一句block detec
在哪裡下載的?給我一個鏈接唄,安卓的,我也試試去
8. ARM的立即數問題,怎樣才合法
這個在ARM中稱之為造數法則,是這樣定義的:立即數存儲佔12位,有八位基數與4位移數組成,造數時,8位基數右移2*4位基數值,然後判斷其是否在0~0xff內。
其實這個指令完全不用糾結,直接用LDR <dest>, =#xxxxxxxx就可以搞定,因為這條指令不需要考慮那麼多。
9. 虛擬幣,比如比特 萊特所謂挖礦是什麼
問清楚了也沒有用,不如自己嘗試下,挖礦到底是什麼。
哈魚礦工是一個提供區塊鏈數字挖礦的軟體,他可以一鍵挖礦,而且還可以隨時提現到支付寶,賊方便,歡迎試下。
10. ARM寄存器賦值問題
雖然不知道程序含義,但 目測應該有問題,在嵌入式的寄存器賦值中往往只賦值你需要的位,其它位由於可能有特殊含義,最好保留,因而就有以下演算法:( IO0SET雖然賦值0無意義,只是為了說明演算法)
IO0SET |= (1<<23); //23位賦值1,其它位保留。
IO0SET &= ~(1<<23); //23位賦值0,其它位保留。