Linux C embed development (personal rveiew)

1. 如何快速去bring up bcm 的wifi chipset
? ?a. 首先的確認 編譯的BSP profile?
? ?b. 其次要先用 default 的kernel config 去編譯
? ?c. 現在我們的一些 PCIE/GPIO/driver 總線的設置 都在dts 中,有錯就去改dts
2. BCM 的板子bring up 注意事項
? ? a. ?fw: bcm963146GW_WL23D2D1GA_WLMLO_nand_squashfs_update.pkgtb?
? ? ? ? ? ?這里從fw 名字中包含幾種 信息(profile,flash 類型(nand,emmc)文件系統(ubi,squashfs)flashblock size(128、256),帶不帶bootloader(loader))
? ? ? ? .pkgtb 結尾的文件可以通過 bootloader cli ,webgui 的http 去升級
? ? ? ? ?.bin 結尾的可以用作燒錄機器燒錄(但一定要注意, 這個bin 有兩種,1. 是文件名中帶raw 的 1. 名字中沒有raw包含bootstrap) ?帶raw的是不帶ecc 的可以用作bootloader tftp 升級. 帶bootstrap 的是用作燒錄的帶ecc. ?
? ? ? ? ? ?這里注意 燒錄和tftp 千萬不要升錯了bin file
? ? ?b. ?啟動時的boardid 千萬不要選錯 boardid=968560REF_PCI2?
? ? ? ? 如何查看支持那些board id 可以在bootloader cli 中setenv ?boardid ?xx 來查看
? ? ? c. 這些信息可以給板子借一個console 來查看他的 星系
? ? ? ? ? U-Boot TPL 2019.07 (May 19 2024 - 00:53:56 -0700)
? ? ? ? ? U-Boot TPL 2019.07 (May 19 2024 - 00:53:56 -0700)
`Board is non secure`
`$TPL: 50404p3@499373 $`
`PMC driver initcall`
`BCM UBUS4 driver [ubus_sys] registered`
`BCM UBUS4 DCM clk driver [ubus_dcm_sys] registered`
`CPU Clock: 1500MHz`
`IMAGE is NAND`
`Trying to boot from NAND`
`nand flash device id 0xc2da9095, total size 256MB`
`block size 128KB, page size 2048 bytes, spare area 64 bytes required`
`ECC BCH-4`
`INFO: image from 2097152 to 2673868`

? ? ?3. BRCM EVM board 如何升級sc 的fw
? ? ? ? ? 首先 想用 brcm bootloader + sc 上層的方式是 不容易實現的 (flash map 不同) 要想這樣做一定要確定 brcm 的flash map 和sc 相同 并且 所用的ubi 的volume id 一定要相同
? ? ? ? ? 1. 通過tftp 吧整個image 更行 bootloader 和上層都是sercomm 的
? ? ? ? ? 2. 燒錄 flash.?

bcm wifi 啟動:
? 1. 首先 NONE csm fw 編譯(加上_BASESHELL) 即使none cms
? ? ?/release/maketargets??96856GWO_WL23D2D1GA_WLMLO_BASESHELL?
? ? 在這個項目中會遇到none cms viop 便不過,就直接自己解決brcm 說是宏報的不好
?2. 編譯MT DT test wifi driver (WLTEST=1 enable test driver)
? ? ?make PROFILE=96856GWO_WL23D2D1GA_WLMLO_BASESHELL WLTEST=1?
? ? ? wl -i wl0 ver 查看,入宮ver 中帶有test 字樣就是test driver
?3. test wifi driver bin
? ? ? DHD: /dhd/mfg/ ?現編時 test fw
? ? ? 普通 在/lib/modules/extra /wl_mfgtest.ko
?4. enable test fw?
? ? ?在bootloader cli 下 ?setenv wlFeature 0x2 ? // test?
? ? ? ? ? ? ? ? ? ? ? setenv wlFeature 0x0 ?//normal?
?5. application
? ? ?wlssk->ufnvram->hostapd
? ? ?wlssk-service.c
? ? ? wlconfig: wifi config
? ? ? ceventd/cevent ?時wifi 調試app和debug
? ? ??
?6. DHD enable
? ? bootargs_append=cma=56M ?48M for 63146
? ? ?dhd0=11
? ? ?dhd1=11
7. EVM board 可能 升級MCB 出錯。?
? ? ? shmoo completed OK
find magic number 0x64503301 at address 0x26000
reading blob from 0x26000 offset 0xc len 20492
digest sha256 OK

DPFE FW hpk3_16_ddr3 3.53.0.0 20210506 SEGMENT 2/4
FFF000F8 00000000 0090703D
DDR3
MCB rev=0x00020A01 Ref ID=0x0703D Sub Bld=0x009 Cookie=0x9E5C163A
Dram Timing 11-11-11
CMD @1T
Virt VTT on


Shmoo WL

One UI Steps : 0x76

? ?0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111
? ?0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999000000000011111111
? ?0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567
00 X+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
01 X+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

shmoo completed with error
run shmoo error
MEMSYS init failed, return code 00000010
DPFE errors: 0x0 0x400000 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
MHS errors: 0x10000 0x0
DDR scrambling enabled
### ERROR ### Please RESET the board ###

? ? ?ddr 4?
? ? ? ddr 0x40101615
? ? ?
? 2. 改bootloader 的code
? ? ??
?3. Bootloader 能燒錄的bin 要用par 文件來做,loader_xx.bin 不能用
?4. 如果啟動后 mtd 區域數據丟失或者 不可寫, 要看啟動過程中 有沒有人去寫gpio 的值。

5. 讀懂一個工程最快的步驟
? ? ?a. 要介紹文檔
? ? ?b. 下載工程
? ? ?c. ?看下下來的 源碼 找readme 來看
? ? ?d. ?在下載的 源碼中找介紹文檔讀
? 6. UIBI fs (var/ft)無法mount 上
? ? ?a. 首先要檢查 給的flash 的大小,ubi 最小3M,但是最好要是兩倍
? ? ?b. 我們遇到 inviald arguments 時 一般 都是 分區flash map 給的太小了
? ? ?
? ? ?用ubinfo -a 看 沒有可用空間
? ?

2.如何判斷一個bootloader 能否在另一個hw 上能不能起來
? ? a. 首先 他們的住chip的型號要相近 (也即bootcli 中的boardid 有支持列表)
? ? b. 他們的 flash、ram 都要能支持 (特別是 flash 他的blcok size 支持 DCH 4 還是8 )?
? ? c. 是否有security boot?
? ? ?d. 如何判斷 bootloader 能否帶起rootfs
? ? ? ? ?1. flash map 是否相同
? ? ? ? ?2. 是否有簽名校驗(校驗rootfs 不是ram 的整個ubi)
? ? ? ? ?3. ubi的volume name 是否和 bootloader 中的一樣。(不一樣找不到volum)
3.我們想要在 EVM board 上去跑sc fw 最快的方法
1. 如果 EVM board 的flash (block size,BCH 等都要看)和 ram 都是和 我們的hw 一樣,直接 在bcm 的bootloader cli 先tftp 升級(tftp VD4277B_evm_boot.bin ?
? ? nand erase.chip???
? ? nand write 0x1000000 0 $filesize) ?我們VD4277B sc hw 和evm board 不同

?????2. EVM board 和sc board hw 不同 (flash 和ram)

?????????這時最快的方法是 讓driver team 給以個bootloader 和sc 相同的flash map, 我們在升級 sc 的上層。
4.Broadcom wifi 如何 編譯 WLTEST fw(wlFeature=0x2)
? ? ? 首先 說明一點 如果是 dongle fw 編譯的的時候 在 dongle image 下有兩個錄 一個 formfw 的 一個mfg 的目錄就是 mfg test fw。
? ? ? 如果不是dongle fw, 則有連個ko for wl test (wl_mfgtest.ko ?hnd_mfgtest.ko), 這兩個 ko 在sdk 中有的有 prebuild 的ko 有的沒有就需要自己去編一個test ko。?
? ? ? ? ? build command: make clean; make PROFILE=<profile>_WLMFGTEST ? ?(在profile 加個后綴 _WLMFGTEST)
? ? ? ? ? 編出來后 的wl.ko ? 和 hnd.ko 就是 test image, 你再在編譯test image 時更名成wl_mfgtest.ko ?hnd_mfgtest.ko 然后copy 到你的rootfs中,然后去編。?
5. wl test fw 編譯方法:?
? ? ?make PROFILE=<profile> ?WLTEST=1 ?// 這種編譯方法只是 在編譯的時候安裝 mfg image ,不是 rebuild mfg test ko, 注意注意。?
? ? ? WLTEST=1 和 bsp config file 中 BUILD_HND_MFG=y ?都不是在編譯wl_mfgtest.ko 和 hnd_mfgtest.ko, 他只是去編譯一個test image, 包括hw test 時用到的default 值不同等。


? 6. ?Remove ?mfg test kernel module in formal release for flash size limtation.?
??????????????in bsp config file set BUILD_BCM_WLAN_NO_MFGBIN=y
?7. when you met the aclocal-1.14 command not found ?for compiler packets
? ? ? ?enter the directory && autoreconf -ivf?
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43892.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

攻防世界 Web_python_template_injection(flask模版注入)

學習文章&#xff1a;https://www.freebuf.com/column/187845.html https://blog.csdn.net/weixin_54515836/article/details/113778233 flask的渲染方法有render_template和render_template_string兩種。 render_template()是用來渲染一個指定的文件的。使用如下 return re…

自學第十五天----深入理解函數上

1. 函數是什么&#xff1f; 維基百科中對函數的定義&#xff1a; 子程序 在計算機科學中&#xff0c;子程序&#xff08;英語&#xff1a;Subroutine, procedure, function, routine, method, subprogram, callable unit&#xff09;&#xff0c;是一個大型程序中的某部分代碼…

python怎么求因數

要想做到python語言求因數方法&#xff0c;首先要明白其中的原理&#xff1a; 1、對由123456789這九個數字組成的9位數進行分解質因數。 2、1234576982x3x3x7x13x23x29x113&#xff0c;所以他的值因數是113。 3、總共有362880種可能&#xff0c;從中找出值因數中最小的數字和…

一節課說明一類奧數題系列——約數與倍數

小學奧數-約數與倍數 約數和倍數&#xff1a;若整數 a 能夠被 b 整除&#xff0c;a 叫做 b 的倍數&#xff0c;b 就叫做 a 的約數。 公約數&#xff1a;幾個數公有的約數&#xff0c;叫做這幾個數的公約數&#xff1b;其中最大的一個叫做這幾 個數的最大公約數。a,b兩數的最…

學生宿舍反限電插座控制功能

石家莊光大遠通電氣有限公司反限電插座功能的技術防止學生通過半波整流進行防止學生改變負載特性(阻性變為非阻性)的防止學生通過可控硅調壓技術(進行功率調整達到使用目的)惡性負載限制次數設置:管理部門可以根據實際要求設定每個宿舍違規次數。達到本次數。系統自動鎖定&…

【LeetCode】快樂數

目錄 一、題目二、解法完整代碼 一、題目 編寫一個算法來判斷一個數 n 是不是快樂數。 「快樂數」 定義為&#xff1a; 對于一個正整數&#xff0c;每一次將該數替換為它每個位置上的數字的平方和。 然后重復這個過程直到這個數變為 1&#xff0c;也可能是 無限循環 但始終變…

Linux:Ubuntu18.04下開機自啟動QT圖形化界面

Linux&#xff1a;Ubuntu18.04下開機自啟動QT圖形化界面 Chapter1 Linux&#xff1a;Ubuntu18.04下開機自啟動QT圖形化界面一、創建rc.local文件二、建立rc-local.service文件三、啟動服務查看啟動狀態四、重啟 Chapter2 將QT應用作為開機自啟動&#xff08;Linux系統&#xff…

代碼能力弱,編程思維幾乎沒有,有些勉強能看懂,讓自己敲,一臉懵逼?

最近有幾個人問我&#xff0c;說自己代碼能力弱&#xff0c;編程思維幾乎也沒有&#xff0c;簡單的代碼&#xff0c;勉強能看懂&#xff0c;讓自己敲&#xff0c;就一臉懵逼&#xff0c;下一步該怎么學習&#xff1f; 10幾年前&#xff0c;這些問題&#xff0c;就像是一道道難以…

Redis數據結構和持久化

數據類型 String&#xff1a;Map<String,String> 命令格式 set key value(相同的key會覆蓋&#xff09; get key incr key decr key setex key seconds value seconds秒后失效 ttl key del key setnx ke value(if not exist) 應用場景 計數器 比如&#xff1a;訪問次…

1招搞定maven打包空間不足問題

目錄 一、工具應用問題 二 、使用效果 三、使用方法 四、練習手段 一、工具應用問題 使用maven的package功能打包失敗&#xff0c;報錯“Java heap space”錯誤。 二 、使用效果 修改IDEA中maven內存使用大小后&#xff0c;打包成功。 三、使用方法 點擊菜單“File->Set…

C++ 例外處理 try throw catch

例外處理 程式中可能會發生的錯誤有三種&#xff0c;分別是語法錯誤(syntax error) 、執行期間錯誤(runtime error) 及語意錯誤(semantic error) &#xff0c;其中編譯器會直接檢查出語法錯誤&#xff0c;如果含有語法錯誤的程式無法過編譯&#xff0c;例如 $ g u06.cpp u06.c…

【PythonRS】基于Python分塊處理大型遙感影像的方法

RSer工作時不可避免會用到大型的遙感影像,由于分辨率過高、區域過大、波段信息過多等原因,都會導致數據非常的大。這個時候我們在進行一些簡單的操作,如計算NDVI、二值化、分類等時,計算機的內存都會溢出。因此今天跟大家分享一下我平時分塊的方法,中間如何計算就按照自己…

Docker 使用基礎(3)—容器

&#x1f3ac;慕斯主頁&#xff1a;修仙—別有洞天 ??今日夜電波&#xff1a;秒針を噛む—ずっと真夜中でいいのに。 0:34━━━━━━?&#x1f49f;──────── 4:20 &#x1f504; ?? ? …

let/const/var的區別及理解

在JavaScript中&#xff0c;let、const 和 var 是用來聲明變量的關鍵字&#xff0c;但它們之間在作用域、變量提升、重復聲明等方面存在區別&#xff0c;詳細情況如下: 1. let、const、var 的區別 (1) 塊級作用域 let 和 const&#xff1a;具有塊級作用域&#xff0c;由 {} 包…

百數教學秘籍:三步走,輕松規劃你的自動化計劃任務

通過設定任務計劃&#xff0c;用戶可以輕松安排指定的功能插件或數據助手在特定時間自動執行&#xff0c;有效提高工作效率&#xff0c;還確保了數據的及時更新和處理。任務計劃在應用啟動時自動啟動并在后臺運行&#xff0c;無需用戶持續監控&#xff0c;為用戶帶來極大的便利…

oracle哪些后臺進程不能殺?

oracle 有很多的后臺進程&#xff0c;在遇到特殊情況的時候如鎖表&#xff0c;如果等待的是一個后臺進程&#xff0c;那這時就需要考量是不是能殺掉這個后臺進程&#xff1f;殺掉這個后臺進程會不會引起實例崩潰&#xff1f;本著實踐出真知&#xff0c;本文針對oracle 11g&…

游戲開黑語音-使用云服務器部署teamspeak服務(系統Ubuntu 20.04 LTS)

目錄 前置物品服務器調整及部署1.重裝系統2.換源3.下載teamspeak服務端并部署 連接服務器參考 前置物品 一臺云服務器&#xff08;系統&#xff1a;Ubuntu 20.04 LTS) 服務器調整及部署 1.重裝系統 在騰訊云官網的主機控制臺內&#xff0c;選擇重裝系統 (由于之前為了快點和…

【刷題匯總 -- 最長回文子串、買賣股票的最好時機(一)、[NOIP2002 普及組] 過河卒】

C日常刷題積累 今日刷題匯總 - day0101、最長回文子串1.1、題目1.2、思路1.3、程序實現 2、買賣股票的最好時機(一)2.1、題目2.2、思路2.3、程序實現2.4、程序實現 -- 優化 3、[NOIP2002 普及組] 過河卒3.1、題目3.2、思路3.3、程序實現 -- dp 4、題目鏈接 今日刷題匯總 - day0…

Excel中用VBA實現Outlook發送當前工作簿

Excel中用VBA實現Outlook發送當前工作簿&#xff0c;首先按AltF11打開VBA編輯器&#xff0c;插入模塊&#xff0c;并在工具-引用中勾選 Microseft Outlook .0 Object Library(其中為你Microseft Outlook的版本號。 Sub 發送郵件() 保存當前excel ThisWorkbook.Save讓excel連接…

Linux 入門教程 by 程序員魚皮

本文作者&#xff1a;程序員魚皮 免費編程學習 - 編程導航網&#xff1a;https://www.code-nav.cn 大家好&#xff0c;我是魚皮。 前兩天我學編程的老弟小阿巴過生日&#xff0c;我問他想要什么禮物。 本來以為他會要什么游戲機、Q 幣卡、鼠標鍵盤啥的&#xff0c;結果小阿巴…