ROC-RK3308-CC這款闆子緻力于打造AIoT物聯網應用平台,今天樓主用手邊的gprs通訊子產品在這款闆子上做了個小功能,随手分享一波!
gprs子產品要用到序列槽通信,參考官網的開發文檔,闆子有兩組uart可用,其中一組被用去做調試序列槽,是以我要用到另外一組,是以需要我們去到kernel/arch/arm64/boot/dts/rockchip/rk3308.dtsi 這個檔案,将uart1的status改成"okay",如下所示:
uart1: [email protected] {
compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart";
reg = <0x0 0xff0b0000 0x0 0x100>;
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
clock-names = "baudclk", "apb_pclk";
reg-shift = <2>;
reg-io-width = <4>;
dmas = <&dmac0 6>, <&dmac0 7>;
dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
status = "okay";
};
改好之後如果想測試一下這組序列槽能不能使用,可以先找根杜邦線把闆子上的u1tx和u1rx短接,然後通過終端指令讓他們自發自收,如果可以,那就證明這組序列槽可用了。具體操作如下:
# cat /dev/ttyS1 &
#
# echo test > /dev/ttyS1
# test
做好這些之後,我寫了一份demo測試代碼,編譯完成後燒入到闆子裡面,連接配接好硬體,運作,發現闆子在運作pppd撥号上網的時候報錯
是以我們需要重新配置核心,把ppp_generic 這個功能子產品編譯到核心裡面。在sdk根目錄下,cd kernel/,然後執行指令make menuconfig,會進入如下核心配置圖形界面:
如圖把ppp相關選項選上,然後儲存,重新編譯核心之後,重新燒錄,再次運作demo
撥号成功,然後再試一試短信發送:
短信發送成功!
進入Firefly開發者社群,可下載下傳GPRS_demo
———————————————
更多資訊請關注Firefly公衆微信号fireflytee:
———————————————
Firefly官網:http://www.t-firefly.com
Firefly開源社群:http://developer.t-firefly.com