平臺(tái):迅為IMX6Q開發(fā)板
配件:lora模塊
系統(tǒng):Linux系統(tǒng)
Lora 內(nèi)核配置
本小節(jié)我們將在非設(shè)備樹源碼中進(jìn)行 Lora 內(nèi)核配置。 Android4.4 源碼是非設(shè)備樹內(nèi)核的源碼, Linux 和Android 共用一套源碼, 所以我們使用 Android4.4 源碼即可。
1 打開 Android4.4 內(nèi)核源碼, 我們使用以下命令編輯 board-mx6q_topeet.c 文件。
cd kernel_imx/vi arch/arm/mach-mx6/board-mx6q_topeet.c
查找“522” , 在后面添加代碼:
#ifdef CONFIG_SPI_SX127X
static struct spi_board_info sx127x_plat_board[] __initdata = {
[0] = {
.modalias = "sx127x",
.max_speed_hz = 100*1000
.bus_num = 1,
.chip_select = 0,
.mode = 0,
//.controller_data = &spi2_info,
},
};
#endif
修改完如下圖所示:
2 然后繼續(xù)查找“522” , 后面添加如下代碼
#if defined(CONFIG_SPI_SX127X)
spi_register_board_info(sx127x_plat_board,
ARRAY_SIZE(sx127x_plat_board));
#endif
3 查找“TOPEET_ECSPI2_CS0” 并將其值修改為 NULL, 如下圖所示。
保存后退出。
4 將驅(qū)動(dòng)文件 sx127x.c 通過 ssh 傳到內(nèi)核目錄下的“drivers/spi/” 下, 如下圖所示。
5 使用命令“vi Makefile” , 在最后添加如下代碼
obj-$(CONFIG_SPI_SX127X) += sx127x.o
如下圖所示, 修改完保存退出。
6 使用命令“vi Kconfig” , 在最后添加代碼:
config SPI_SX127X
tristate "SX127X Module driver support"
depends on EXPERIMENTAL
help
This supports SX127X Module drivers.
#end add
修改完如下圖所示。
保存退出。
7 回到源碼目錄。 使用以下命令配置內(nèi)核
cp -r config_for_iTOPiMX6_linux .config
export ARCH=arm
make menuconfig
8 在 menuconfig 的配置界面, 配置 lora,取消配置 rc522
-> Device Drivers
-> SPI support (SPI [=y])
選擇“SX127X Module driver support” , 取消選擇“RC522 Module driver support” 。 如下圖所示。
9 保存退出后, 回到內(nèi)核源碼目錄下, 使用以下命令
cp -r .config config_for_iTOPiMX6_linux
./build_android.sh qt
編譯內(nèi)核, 燒寫“uImage” 內(nèi)核鏡像。
編譯完以后, 重新燒寫內(nèi)核鏡像到開發(fā)板。
應(yīng)用程序編寫
在測(cè)試?yán)讨校?我們要用倆個(gè)開發(fā)板通過 lora 通信控制對(duì)方開發(fā)板上的 led 的亮滅。 我們將配置資料中的測(cè)試程序 lorares.c 拷貝 Ubuntu 上, 輸入以下的命令編譯可執(zhí)行文件
arm-none-linux-gnueabi-gcc -o lorares lorares.c -static
編譯完生成可執(zhí)行程序 lorares, 將 lorares 通過 U 盤拷貝到開發(fā)板的/usr/bin 目錄下, 在下一小節(jié)我們將進(jìn)行測(cè)試。
測(cè)試 lora
1 在測(cè)試之前我們要連接好硬件, 我們將 Lora 模塊連接開發(fā)板 GPIO 座子。 連接好硬件, 如下圖所示:
2 在上一小節(jié), 我們編譯好了可執(zhí)行程序 lorares, 我們將 lorares 分別拷貝到倆個(gè)開發(fā)板的/usr/bin 目錄下。
3 倆個(gè)開發(fā)板分別連接串口終端, 如下圖所示:
4 在左邊的串口終端輸入以下命令接收, 第一個(gè)參數(shù) 0 代表接收模式
cd /usr/bin/lorares 0
5 在右邊的串口終端輸入以下命令發(fā)送, 第一個(gè)參數(shù) 1 代表發(fā)送模式, 第二個(gè)參數(shù)代表 led 的狀態(tài),為 1 代表 led 燈亮, 為 0 代表 led 燈滅
cd /usr/bin/lorares 1 1
6 在倆個(gè)開發(fā)板的串口終端分別運(yùn)行命令, 如下圖所示:
接收端的開發(fā)板的 led 燈也變亮了, 如下圖所示:
審核編輯:符乾江
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209476 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97456
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論