网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月07日漏签0天
嵌入式吧 关注:101,969贴子:456,082
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 3 下一页 尾页
  • 31回复贴,共3页
  • ,跳到 页  
<<返回嵌入式吧
>0< 加载中...

(*^▽^*) 鉴赏一下猕猴桃兄弟分享的价值10w元大项目

  • 取消只看楼主
  • 收藏

  • 回复
  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没事干一起看简单分享一下,有人看嘛,如有影响可以联系删帖,电脑不方便@


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先从main函数开始吧

目测厂商基于 RT-Thread 的二次开发封装操作系统,原本的rt_前缀的库全部封装成fibo_的库,老流程创建任务,这个先不看


2026-02-07 12:53:31
广告
不感兴趣
开通SVIP免广告
  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
涉及存放相关数据的结构体先看一下,这个写法我现在已经不太习惯了,觉得还是创建一个Global.c和Global.h把全局都扔到里面好一点,方便查找和修改


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先引入两个概念方便大家后续理解
一、先搞懂:PDP 是什么?PDP 是 Packet Data Protocol(分组数据协议) 的缩写,核心是蜂窝网络中传输「分组数据」的规则约定。
我们平时上网的 MQTT、TCP/UDP、HTTP 数据,都是以「数据包(分组)」的形式传输的,PDP 就是设备和运营商核心网之间,约定好的怎么传、怎么解析这些数据包的规则;
常见的 PDP 类型就是我们熟悉的IPv4、IPv6(你的代码里也预留了 IP 地址存储),简单说:PDP 就是设备上网用的「数据传输协议类型」。
二、核心理解:PDP 上下文 是什么?「上下文(Context)」在这里的意思是 **「一套完整的配置信息 + 状态记录」,合起来PDP 上下文 = 为了让设备通过 PDP 协议上网,运营商核心网和设备之间约定的「全套上网配置档案」**。
你可以把它比作手机的「移动网络接入点(APN)配置」:手机要上网,需要配置 APN、用户名、密码,这套配置就是手机的「PDP 上下文」;
设备(模组)开机后不会自动上网,必须先向运营商核心网 **「激活 PDP 上下文」—— 本质就是把这套配置发给核心网,核心网验证通过后,给设备分配 IP 地址,建立起设备到核心网的专属数据链路 **,之后设备才能发 MQTT、TCP 等网络数据。
一句话总结(新手必记)
PDP:蜂窝网络的分组数据传输协议,实际就是上网用的 IPv4/IPv6;
PDP 上下文:设备和运营商核心网的「上网配置档案 + 数据链路状态」,核心是 APN 配置,激活成功 = 能上网;


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
再来看看绑定的回调函数,底层怎么触发的不用管



通信回调这块主要是对网络ID和状态的一个记录和处理


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
其实不用看就知道大概什么内容了,老生常谈的操作,注网-配网-断网-掉线重连


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
宏都宏了,我还是习惯我们的u8,u32,s16,s32短一点看着比较顺眼,没有小伙伴好奇为什么这个(UINT8)va_arg(arg, int);能爆出两个返回值吗,那当然是因为
va_list arg 本质是一个指向函数参数栈的指针,函数被调用时,底层会把所有参数按顺序压入栈中;
va_arg(arg, 类型) 的作用是:从当前指针位置,按指定的「类型」读取栈中的数据,然后把指针移动到下一个参数的位置;


2026-02-07 12:47:31
广告
不感兴趣
开通SVIP免广告
  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
战斗继续


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
case 3 的内部就是查找变为激活中状态,但是激活失败的情况,调底层接口重新激活,根据接口结果重新修正状态,fibo_textTrace("[%s-%d]cid = %d,state = %d", __FUNCTION__, __LINE__,cid,state); 这个打印方式可以学习一下,__FUNCTION__打印当前代码所在的函数名,__LINE__打印此打印所在行数,便于查找,但是串口工具这b玩意打印过长的东西就会丢失,可用可不用吧,在前面加点标志直接ctrl+f 搜也一样


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有小登就纳闷了,我有仿真断点调试直接看寄存器状态,我还打印个集矛啊,通信过程就一瞬间没有打印万万不行滴,debug手段千千万,日志调试不规范,同事领导泪两行


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这里看起来是有点问题的,首先是这个fibo_pdp_active(1,&net_info.pdp_cus->pdp_profile,0) 传参错误,这里应该传的是当前第i个PDP的配置地址,应该是这个fibo_pdp_active(1, &net_info.pdp_cus[i].pdp_profile, 0),其次没有行业标准的3次重连机制,在网络波动情况下没有稳定性,这个是否在底层fibo_pdp_active()内部进行了3次判定不得而知,没过这么智能的接口,个人看法此处有失误还有瑕疵10w的价值大打折扣,鉴于项目未完成且未迭代,此处问题可忽略,忽略个毛线没有验证过的相关代码只会祸害后人,宁可慢不可错,取的地址错误后续数据一直是错一旦运行起来找起来也是个大麻烦,我将对此外包工程师不负责任的态度提出强烈的谴责


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
case 4 这里也是有点问题,根据上下文,这个fibo_pdp_active()接口激活失败返回值是负数,这个条件不对,还把break;给漏了

应该是这样吧,emmmmmm,为了规范点还是用if(){}else{}把两种处理括号起来吧,看着顺眼一点


  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
case 5 纯打印就不看了


2026-02-07 12:41:31
广告
不感兴趣
开通SVIP免广告
  • 陆戮浜庡績258
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
case 6 也没啥好看的就是注网情况改变时重新跑一遍激活流程


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 31回复贴,共3页
  • ,跳到 页  
<<返回嵌入式吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示