整理的部分TI AM4379嵌入式專案筆記

2021-09-07 19:49:38 字數 1541 閱讀 2090

關於dts:

1.片外掛程式載,裝置樹怎麼寫。外接ddr3等 父子節點的 #address-cells =<2> #size-cells決定rangs<1 0 0x1000000 0x10000>,代表裝置片選1 ,偏移量0,起始位址0x1000000 ,位址大小 0x10000,對應對映位址範圍0x1000000 ~0x100ffff 

2.中斷號比 datasheet的號碼小32 即 dts中斷號+32 =datasheet中斷號 

3.控制訊號位址比datasheet中的 control module 位址小0x800 ,即dts位址+0x800 =datasheet位址。即說偏移量不大於800的,雙方一致,不用減800。

4.gpio在dts中 配置晶元default(active)時上拉,sleep時下拉。 

5.am4372.dtsi的uart0 -->ti,hwmods="uart1" ,字串描述編號全部加1 ,gpio亦是如此

6.中斷向量在am4372.dtsi中全部設定完了,開發板引用即可,只需要在開發板dtsi設定引腳屬性。

7.因為linux鍵盤定義包含台式電腦鍵盤,筆記本鍵盤等,不管是矩陣鍵盤還是按鈕,都要注意按鍵配置

關於指令:

1.df 存貯器清單

2.lsinput 鍵盤清單 ,hexdump /dev/...鍵盤事件在控制台顯示。

3.使用cat /proc/tty/driver/serial檢視板載串列埠 

關於sqlite3:

1.各個**,開頭第一列 xxname text primary key not null 其中xxname不能重名

2.c#中,table[0]rows.count從0開始,兩行則rows.count=1

關於串列埠:

串列埠這部分是修改離職同事的未完成程式中發現並解決的問題彙總

1.read直接返回,沒有進入阻塞模式 。原因:newtio.c_cc[vtime]和newtio.c_cc[vmin]沒有設定, 或者是都設定為0。解決辦法:修改為newtio.c_cc[vtime]=10,newtio.c_cc[vmin]=0; 1秒內沒接收到則超時。

2.阻塞模式下一直讀取為0,返回數字隨著延時而增加.原因:返回數字沒有賦初始值,因為多串列埠select下,返回數字的賦值函式沒有被執行。解決辦法:這說明gcc不會給不賦值的變數預設賦值為固定0值,而是隨著函式執行時間而增加。這個特性可以用來做計時器。返回賦初始值即可。

2.1.賦初始值之後解決了返回的問題,但是當 select延時引數為null時,select函式一直被阻塞。

3.沒有接收的情況下,select函式返回maxfd被選中,即自動選擇控制代碼最大的。解決方案:分析發現最大控制代碼接485晶元,由於485晶元接線方式的問題,導致開始傳送乙個位元組(忙),自動會接收到這個位元組。然後程式裡檢測到接收位元組後,不能識別指令,又傳送該位元組代表忙,形成死迴圈,所以導致不停檢測到資料.資料傳送完畢之後,延時1ms再cflush(fd,tcioflush)可以清除,時間必須夠,999us都不行。

4.傳送一切正常,而接收的第八位被強制為0.原因:去掉newtio.c_iflag|=istrip ,該語句不是自動去掉校驗位,而去掉了第8位. 

前端的部分整理

前幾天發過一篇react 複製變數到剪下板。當時就隨便搜了乙個就去用了。功能都有,但是有乙個問題,它不支援換行,而我做的選號工具複製的時候對換行又有要求,必須能複製換行。所以就需要換乙個,這裡又找到乙個支援換行的react工具 react clipboard.用例 import react from...

關於Spring的部分整理

ioc 控制反轉 spring是乙個開源容器框架,它整合各型別的工具,通過核心的bean factory實現了底層的類的例項化和生命週期的管理。在整個框架中,各型別的功能被抽象成乙個個的 bean,這樣就可以實現各種功能的管理,包括動態載入和切面程式設計。1.能有效地阻止你的中間層物件 2.能消除許...

整理過的資源入口(大部分可用)

我整理過的資源入口 大部分可用 期刊http 211.151.91.79 autoin.asp?database cjfdzy 萬方http whwanfangdata.超星http libss.nefu.edu.ebook s submit bc ec cb f7 http 202.112.154...