Toggle navigation
首页
问答
文章
话题
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
rt-smart
ART-Pi Smart
[ART smart 开发板] 移植RIL到ART-Smart(一)概述和驱动
发布于 2022-05-14 16:47:10 浏览:122
# 简介 在移动网络通信中,尤其是智能手机,平板等智能设备中,RIL是一个非常重要的组件,RIL使各种无线语音和数据应用成为可能。RIL(Radio Interface Layer)工作在PPP、TCP/IP协议之下,负责数据的可靠传输、AT命令的发送以及response的解析。 RIL的位置处于无线基带系统的协议栈之上,通信Framework之下。由于RIL隐藏了硬件上的一些细节,OEM厂商可以根据自己的需要将不同型号的无线modem集成到它们的产品之中。 # 特征 以Android ril为例,一般分为为上层framework或应用提供API接口的RILJ,和守护进程rild组成。rild主要管理modem channel,初始化modem以及mode的状态维护。 RT Smart是一个具有完整独立进程的智能操作系统,并且已经实现了大量POSIX和System V接口,能够很方便的将linux下的组件移植过来,利用前人搭的梯子迅速的丰富自己的生态。  # 项目综述 本次项目主要致力于开展RT Smart上通信组件及应用的移植和开发工作,大题包含以下几个部分的工作,计划分阶段完成: 1. 移植ril,以完成不同vendor modem的适配,屏蔽AT命令,协议,通信接口及方式之间的差异 2. 基于ril完成modem的状态初始化和守护,向上提供统一的接口,包括通话、短信、数据、SIM和网络信息等。 3. 评估一套适用于通信应用的图形开发库,如其他开发者已经移植完成则直接使用,如没有合适的就移植。 4. 做出一系列应用demo,实现电话接打挂查,短信收发(TXT和PDU)。数据网络注册、网络状态监测等基本功能。 # 移植RIL Android上的ril大多涉及vendor的商业机密,所以一般会有一部分闭源,而且Android提供的RILJ接口大多是适用于java应用,而且rilJ与rild交互也使用用了很多Android特性,移植难度比较大,必要性也不高。经过一段时间的调研,最终选定一套开源的,针对linux的ril进行移植。 [Linux ril开源组件 github](https://github.com/keipy/linux-rild/) 这套ril使用select对modem设备进行监控,可以支持通过串口和USB等方式挂载到操作系统的通信模组。其实也可以支持AP+CP在一个chip的soc,但是目前市面上还没有厂商愿意将整个soc全部开放出来。 rild中通过共享内存把modem的信息共享出来,任意的进程都可以通过加载这部分共享内存来获取modem信息,比如注网状态,sim卡状态等。 提供了一个lib用于实现应用和rild直接通信,其中AT命令和返回结果主要通过消息队列的方式传递。 rild默认开启两个线程,端口读取线程和主线程,两个线程之间的消息传递和同步也是通过消息队列实现的。 # 添加串口和重新编译内核 ## 硬件连接 当前官方出厂的firmware中只开启了一个串口uart0,用于实现console。所以第一步需要再配置一个串口供modem使用。 通过查看datasheet,uart3已经在J7引出。   ## 配置uart驱动 使用menuconfig工具配置uart3为enable  保存退出,重新编译内核  先临时加载到ram运行一下,看是否成功  值得注意的是,这里的串口体现在设备符号实际是uart2,这是因为原理图和工程配置中都是以1为初始索引的,而设备付是以0为初始索引的。 ## 替换kernel 使用imx文件运行只是临时加载到了内存,断电后不能保存。之后的开发还是要基于这个kernel,所以需要把kernel固化烧写到flash。依旧是使用Vscode插件,首先下载kernel   执行命令 ``` cd kernel cp rtthread.bin rethread.bk cp kernel.bin rtthread.bin` ``` 重启,kernel就替换成功了 # 代码 [Linux ril开源组件 github](https://github.com/keipy/linux-rild/) [我的RT-Thread Smart开发仓库 gitee](https://gitee.com/yu-wang-yy/ART-Pi-smart/) # 总结 1. 这一步的难度较低,主要是熟悉环境的问题。 2. 推荐使用VScode插件,相比于使用scons,无论编译内核还是应用都要顺利很多。 3. 串口驱动配置索引和原理图不对应这个还是比较别扭的。 4. udb下载程序在经过了熊大一波优化以后好用了不少,我是使用板载的wifi模块连接无线使用的,相比连接网线来说方便不少(主要还是路由器离我太远),有同样痛点的同学可以试一试。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
AngerCoke
这个人不懒,主要是真的不想写什么
文章
8
回答
2
被采纳
0
关注TA
发私信
相关文章
1
RT-Thread Studio 编译ART-Pi 的SDK报错 求助!-
2
ART-Pi 在 Studio 中使用TouchGFX Library 编译报错
3
RT-Thread Studio 更新错误
4
基于ART-Pi开发板创建的工程,RT-Thread Settings打不开
5
在 ART-Pi 平台使用 openocd 直接烧录到外部 spi flash?
6
ART-Pi工程用mdk5打开后提示文件找不到
7
ART-PI demo是否能够增加demo流程框图或者详细设计文档
8
ART-Pi 的ST_Link无法识别
9
请把ART-Pi仓库放到gitee上一份。
10
仅有ART-Pi开发包时,RTT Studio无法创建ART-Pi工程
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
五分钟玩转RT-Thread新社区
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
国产MCU移植系列教程汇总,欢迎查看!
热门标签
RT-Thread Studio
串口
LWIP
AT
FinSH
Env
ART-Pi
SPI
Bootloader
USB
Hardfault
CAN
文件系统
studio
DMA
RT-Thread
线程
Nano
stm32
ota
MQTT
SCons
rtthread
ESP8266
freemodbus
软件包
I2C
UART
flash
cubemx
RTC
定时器
W5500
FAL
BSP
rt-smart
rtt
PWM
AB32VG1
ADC
编译报错
msh
socket
SDIO
C++
dfs
at_device
SFUD
MicroPython
RT-Studio
本月问答贡献
小小李sunny
39
个答案
10
次被采纳
出出啊
34
个答案
9
次被采纳
红枫
25
个答案
7
次被采纳
lchnu
12
个答案
5
次被采纳
crystal266
22
个答案
4
次被采纳
本月文章贡献
张世争
11
篇文章
31
次点赞
吉利咕噜2022
7
篇文章
12
次点赞
xusiwei1236
3
篇文章
11
次点赞
crystal266
3
篇文章
8
次点赞
Liutao
3
篇文章
4
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部