Giter Club home page Giter Club logo

gprs_c_sdk's Introduction

Ai-Thinker GPRS SoC development SDK written by C

安信可GPRS模组片上(SoC)开发SDK C语言版

This SDK can be also applied to RDA8955 raw chip 也可直接在RDA8955芯片上运行

English Readme

Average time to resolve an issue Percentage of issues still open

(一) 硬件

1. A9: GPRS 模块


特征
  • 32位内核,主频高达312MHz,4k指令缓存,4k数据缓存
  • 多达29个GPIO(两个GPIO作为下载口)
  • 实时时钟、闹钟
  • 1个USB1.1接口
  • 2个带流控的UART接口(+1个下载调试串口)
  • 2个SPI接口
  • 3个I2C接口
  • 1个SDMMC控制器(接口)
  • 2个10位ADC接口
  • 32Mb(4MB) SPI NOR Flash
  • 32Mb(4MB) DDR PSRAM
  • 8kHz、13Bits/sample ADC mic
  • 48kHz、16bits/sample DAC Audio
  • 电源管理单元:锂电池充电管理、集成DC-DC及LDOs、可变化的IO电压
  • 18.8 x 19.2 mm SMD封装
  • 四频GSM/GPRS(800/900/1800/1900MHz)
  • 语音通话
  • 短信服务

2. A9G: GPRS+GPS+BDS模块


特征
  • A9所有特征
  • 集成GPS+BDS(内部和GPRS串口2连接)

3. A9/A9G GPRS(+GPS+BDS) 开发板


A9/A9G开发板,方便开发和调试

特征
  • 1个A9G模块(A9和A9G采用相同封装,引脚相同,所以开发板通用)
  • 引出模块29个GPIO(包括2个下载调试引脚(HST_TX,HST_RX
  • 1个SIM卡(Micro卡)卡槽(Nano卡<Micro卡<标准卡)
  • 1个TF卡卡槽
  • 1个GPRS IPEX1代座子
  • 1个GPS IPEX1代座子
  • 一个USB接口
  • 5v-4.2V DC-DC,故可以5v供电或者3.8~4.2V供电
  • 1个加速度计LIS3DHx芯片(购买时请咨询客服开发板有无加速度计,默认没有)
  • 1个开机按键,1个复位按键
  • 2个连接到GPIO的LED灯
  • 1个麦克风
pudding开发板引脚图


RDA8955芯片或者其相关模块理论上也可使用本SDK

4. USB转串口模块

需要注意的是,开发板上的USB接口不是USB转串口功能,而是USB1.1功能, 所以,为了下载和调试,需要一个USB转串口模块接板子上的HST_TXHST_RX引脚

5. 电源

  • 可以用锂电池来给模块供电,接VBAT(3.4~4.2V),VBAT供电需要长按(拉低)power-key开机;
  • 开发板也可使用5V接VUSB经过开发板的DC-DC降压后供电,USB转串口模块直接供电也行(仅调试),要保证有足够的电流供应(峰值2A), 因为VUSB接了电所以模块上电会自动开机

(二) SDK特征

  1. 提供易用的API,只要有C语言开发基础就可以快速使用,并提供详细的例程文档
  2. 集成大量功能,包括:
    • GPIO
    • UART
    • 基础信息获取如ICCID、IMEI、IMSI等
    • SPI
    • I2C
    • ADC
    • OS
    • FS
    • GPRS网络(包括基站信息查询)
    • 基站定位(LBS)
    • socket(TCP/UDP)
    • dns
    • SSL/TLS
    • MQTT
    • 短信
    • 通话
    • 低功耗
    • GPS
    • RTC、基站时间同步
    • FOTA
    • 看门狗
    • 音频播放(如播放MP3)
    • 机智云平台快速接入
    • 阿里云CSDK
    • 其它库如json、NMEA解析库等等,具体可以看demo目录或者libs目录

获得SDK

代码托管在github

1. 下载代码


  • 方法二:使用如下命令克隆工程到本地(需先安装git)。

    这种方式可以得到最新的还未发布的代码

git clone https://github.com/Ai-Thinker-Open/GPRS_C_SDK.git

2. 检查代码完整性

下载完后请检查目录platform/csdk目录写是否包含debugrelease目录。 如果没有,则是下载方式错误,请仔细阅读第一步下载正确的文件

(三) 开发文档及例程

文档地址: GPRS C SDK 在线文档

包括开发环境安装、固件下载、调试以及GPRS基础知识、API说明等

例程在本项目的demo目录下

(四) 反馈

这里(issue)可以查看搜索正在讨论或者已经解决的问题

反馈方式:

(五) 参与开发

bug修复、优化、功能模块增加: fork -> 修改 -> 提交PR

gprs_c_sdk's People

Contributors

442534820 avatar a710450641 avatar huangxunyan avatar khaledbenh avatar neutree avatar punee995 avatar xuhongv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gprs_c_sdk's Issues

mqtt task error 中断执行Detected event: 0x9db00000

[22:06:55.132] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[22:06:55.132] : Fn 1018421 T1 0768 T2 01 T3 02 Time 00 15 13 582
[22:06:55.134] AT 01 : TaskName: Task Idle -- timer_sender handler=0x881645e1,arg=0x82139e70
[22:06:55.134] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x881645e1,args=0x82139e70
[22:06:55.234] AT 01 : TaskName: CFW -- sys_timeout msecs=5000,handler=0x881645e1,arg=0x82139e70
[22:06:55.286] : Fn 1018457 T1 0768 T2 11 T3 38 Time 00 15 13 746
[22:06:55.286] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[22:06:55.286] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[22:06:55.286] AT 01 : TaskName: CFW -- tcp_slowtmr: processing active pcb
[22:06:55.286] AT 01 : TaskName: CFW -- tcp_slowtmr: polling application
[22:06:55.286] AT 01 : TaskName: CFW -- lwip_tcp_event conn=0x82124c38,lwip_event:4,pcb:0x8213a098
[22:06:55.286] AT 01 : TaskName: CFW -- tcp_output: nothing to send (0x0)
[22:06:55.301] AT 01 : TaskName: CFW -- tcp_output: snd_wnd 29312, cwnd 2848, wnd 2848, seg == NULL, ack 10480
[22:06:55.417] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[22:06:55.539] : Fn 1018511 T1 0768 T2 13 T3 41 Time 00 15 13 996
[22:06:55.539] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[22:06:55.539] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[22:06:55.655] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[22:06:55.786] : Fn 1018565 T1 0768 T2 15 T3 44 Time 00 15 14 247
[22:06:55.786] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[22:06:55.786] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[22:06:55.786] AT 01 : TaskName: CFW -- tcp_slowtmr: processing active pcb
**[22:06:55.871] : Detected event: 0x9db00000
[22:06:55.871] : Detected event: 0x9db10000_**_
[22:06:55.971] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0

下载调试GBD

image

不太明白这个,网上找了相关资料,还是模糊
是我程序出问题还是怎么了

下载时提示 No boot sector struct exists

Fastpf V2 over Host
Loading the lod files:
host_8955_flsh_spi32m_ramrun.lod
Using flash programmer:
gpio_flash.lod
Ramrunning the flash programmer...

Resetting SPI flash...
Done.

Entered Host Monitor mode.

No boot sector struct exists. Skipping ...

Event sniffer (re)starting. (Connection: Event Sniffer (COM5))

新demo_gps下载出错

Detected XCPU in the GDB loop (0x9db00000), connect GDB debugger for more info.

调试demo_gps老出现这个,没改过程序

coolwatcher 下载程序失败

新买的A9G开发板,下载时提示如下,无法下载呢?

Event sniffer (re)starting. (Connection: Event Sniffer (COM3))
Loading profile script : 8955.rb
EVENT SNIFFING ERROR: CONNECTION BROKEN?
EVENT SNIFFING RESURRECTED.

fastpfChooseFlashProgrammer()
Flash programmer file for fastpfization set to:
D:/Project/GPRS_A9/GPRS_C_SDK/platform/ramrun/flsh_spi32m/flsh_spi32m_CUSTOMER_host_ramrun.lod
fastpfChooseLod()
Lod file for fastpfization set to:
D:/Project/GPRS_A9/GPRS_C_SDK/hex/gpio_B1003.lod
fastpfGo()
Fastpf V2 over Host
Loading the lod files:
gpio_B1003.lod
Using flash programmer:
flsh_spi32m_CUSTOMER_host_ramrun.lod
Ramrunning the flash programmer...

Resetting SPI flash...
Done.

Entered Host Monitor mode.

No boot sector struct exists. Skipping ...

0.141000 0.000000 0.141000 ( 0.901335)

Version mismatch between XMD and embedded flash programmer! (embedded version: fa01.fb04 vs script version: fa01.fb05)
It should be compatible, but it is recommended to match XMD and embedded flash programmer
Verify enabled: true
Fastpf Protocol Version: 1.5
Got FPC buffer size: 32768
Use FPC buffer size: 32768
Boot sector address: 0x0
Fastpfing...
Event sniffer (re)starting. (Connection: Event Sniffer (COM3))

 `waitCommandResult': Received unknown command event 0xd0 from target for command 0xf0 (FastPf::FlashCommandTriggeredError)

./chipgen/Modem2G/toolpool/plugins/fastpf/fastpf.rb 67 waitCommandResult' ./chipgen/Modem2G/toolpool/plugins/fastpf/fastpf.rb 309 dofastpfXfer'
./chipgen/Modem2G/toolpool/plugins/fastpf/fastpf.rb 306 each' ./chipgen/Modem2G/toolpool/plugins/fastpf/fastpf.rb 306 dofastpfXfer'
D:/Project/GPRS_A9/CSDTK/cooltools/lib/ruby/1.8/benchmark.rb 293 measure' ./chipgen/Modem2G/toolpool/plugins/fastpf/fastpf.rb 305 dofastpfXfer'
./chipgen/Modem2G/toolpool/plugins/fastpf/fastpf.rb 718 dofastpf' ./chipgen/Modem2G/toolpool/plugins/fastpf/fastpf.rb 788 fastpf'
./chipgen/Modem2G/toolpool/plugins/fastpf/fastpfplugin.rb 83 fastpfGenericGo' ./chipgen/Modem2G/toolpool/plugins/fastpf/fastpfplugin.rb 112 fastpfGo'
EVENT SNIFFING ERROR: CONNECTION BROKEN?
EVENT SNIFFING RESURRECTED.

undefined reference to `sscanf'

LDGEN  by csdk    cust.ld

 
LD                app.elf
/cygdrive/d/projects/GPRS_C_SDK/build/app/app/lib/libapp_debug.a(cJSON.o): In function `print_number':
/cygdrive/d/projects/GPRS_C_SDK/app/src/cJSON.c:476: undefined reference to `sscanf'
value:0, p:ffffffff88242474, addend:0, symbol:0
/cygdrive/d/projects/GPRS_C_SDK/app/src/cJSON.c:476: relocation truncated to fit: R_MIPS16_26 against `sscanf'
make[2]: *** [/cygdrive/d/projects/GPRS_C_SDK/build/app//app.elf] Error 1
make[1]: *** [/cygdrive/d/projects/GPRS_C_SDK/build/app//app.srec] Error 2
make: *** [lod] Error 2

头文件中引用了stdio.h,在链接过程中报错。

串口收发

[13:56:58.094] MM 09 : Att 1, Service 0x82, NMO 2
[13:56:58.094] : Fn 1417055 T1 1068 T2 03 T3 20 Time 00 04 39 237
[13:56:58.095] MMI 01 : uart1 received data,length:8,read:8,data:h�
[13:56:58.096] MMI 01 : uart1 received data,length:8,read:8,data:��
[13:56:58.208] MMI 01 : uart1 received data,length:1,read:1,data:�

1.串口1用回调方法接收数据,收到数据再发出,用串口助手发送的数据为十六进制 67 03 00 00 00 11 91 18 04 02 00 00 01 00 55 80 16,共17个数,收数据时为什么分3次收的?担心数据帧会乱。
2.用事件方式,一样会收到3次事件

New Release?

Hello , any news about the new release ? will it be out soon ?

mqtt got "Detected XCPU in the GDB loop (0x9db00000)"

Tracer GUI loaded.
TRACE SNIFFING ON.
Detected XCPU in the GDB loop (0x9db00000), connect GDB debugger for more info.
Detected BCPU in the GDB loop (0x9db10000), connect GDB debugger for more info.

code : the lastest of the master ( 01/01/2018 ) ( didn't change any code )
$ ./build.sh demo mqtt

gdb info
(gdb) bt
#0 0x882401d5 in OnPublish ()
#1 0x8816406d in ?? ()

[20:34:36.099] AT 01 : TaskName: CFW -- inet_chksum_pseudo(): checksumming pbuf 0x82129698 (has next 0x0)
[20:34:36.099] AT 01 : TaskName: CFW -- inet_chksum_pseudo(): pbuf chain lwip_chksum()=702
[20:34:36.099] AT 01 : TaskName: CFW -- pbuf_header: old 0x821296e0 new 0x821296cc (20)
[20:34:36.099] AT 01 : TaskName: CFW -- ip4_output_if: GP0
[20:34:36.104] AT 01 : TaskName: CFW -- IP header:
[20:34:36.104] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:36.104] AT 01 : TaskName: CFW -- | 4 | 5 | 0x00 | 44 | (v, hl, tos, len)
[20:34:36.104] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:36.104] AT 01 : TaskName: CFW -- | 117 |000| 0 | (id, flags, offset)
[20:34:36.104] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:36.104] AT 01 : TaskName: CFW -- | 255 | 6 | 0x19ff | (ttl, proto, chksum)
[20:34:36.109] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:36.109] AT 01 : TaskName: CFW -- | 10 | 158 | 238 | 109 | (src)
[20:34:36.109] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:36.109] AT 01 : TaskName: CFW -- | 107 | 191 | 60 | 141 | (dest)
[20:34:36.109] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:36.109] AT 01 : TaskName: CFW -- ip4_output_if: call netif->output()
[20:34:36.109] AT 01 : TaskName: CFW -- data_output ---------------------------------
[20:34:36.109] : Fn 1097661 T1 0827 T2 19 T3 39 Time 00 06 08 730
[20:34:36.112] AT 01 : TaskName: CFW -- State: ESTABLISHED
[20:34:36.112] : Fn 1097673 T1 0827 T2 05 T3 00 Time 00 06 08 785
[20:34:36.112] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[20:34:36.112] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[20:34:36.174] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[20:34:36.174] : Fn 1097689 T1 0827 T2 21 T3 16 Time 00 06 08 857
[20:34:36.282] L1S 02 : Tx Dummy on Tn 5 TxP 0
[20:34:36.355] : Fn 1097727 T1 0827 T2 07 T3 03 Time 00 06 09 036
[20:34:36.355] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[20:34:36.355] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[20:34:36.355] AT 01 : TaskName: CFW -- tcp_slowtmr: processing active pcb
[20:34:36.457] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[20:34:36.565] : Fn 1097773 T1 0827 T2 01 T3 49 Time 00 06 09 246
[20:34:36.565] MM 09 : Dump : at 0x82088AA9 (5/5) : 64 f0 00 27 91
[20:34:36.565] MM 09 : Dump : at 0x82088ABA (6/6) : 64 f0 00 27 91 01
[20:34:36.565] MM 09 : Dump : at 0x82088A23 (6/6) : 64 f0 00 27 91 01
[20:34:36.565] MM 09 : Dump : at 0x82088A35 (6/6) : 64 f0 00 27 91 01
[20:34:36.566] MM 09 : Att 1, Service 0x82, NMO 2
[20:34:36.566] : Fn 1097775 T1 0827 T2 03 T3 00 Time 00 06 09 249
[20:34:36.605] PAL 12 : SynchChange[2500,118]
[20:34:36.605] : Fn 1097782 T1 0827 T2 10 T3 07 Time 00 06 09 286
[20:34:36.605] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[20:34:36.605] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[20:34:36.703] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[20:34:36.832] : Fn 1097832 T1 0827 T2 08 T3 06 Time 00 06 09 514
[20:34:36.859] PAL 12 : SynchChange[3750,207]
[20:34:36.859] : Fn 1097836 T1 0827 T2 12 T3 10 Time 00 06 09 537
[20:34:36.859] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[20:34:36.859] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[20:34:36.859] AT 01 : TaskName: CFW -- tcp_slowtmr: processing active pcb
[20:34:36.859] AT 01 : TaskName: CFW -- tcp_slowtmr: polling application
[20:34:36.859] AT 01 : TaskName: CFW -- lwip_tcp_event conn=0x82124c94,lwip_event:4,pcb:0x8213a0a8
[20:34:36.859] AT 01 : TaskName: CFW -- tcp_output: nothing to send (0x0)
[20:34:36.860] AT 01 : TaskName: CFW -- tcp_output: snd_wnd 14656, cwnd 1748, wnd 1748, seg == NULL, ack 8310
[20:34:36.969] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[20:34:36.978] : Fn 1097864 T1 0827 T2 14 T3 38 Time 00 06 09 661
[20:34:37.080] PAL 12 : SynchChange[3750,213]
[20:34:37.107] : Fn 1097890 T1 0827 T2 14 T3 13 Time 00 06 09 787
[20:34:37.107] AT 01 : TaskName: Task Idle -- timer_sender handler=0x880e5e21,arg=0x0
[20:34:37.107] AT 01 : TaskName: CFW -- sys_dotimeout handler=0x880e5e21,args=0x0
[20:34:37.156] AT 01 : TaskName: CFW -- sys_timeout msecs=250,handler=0x880e5e21,arg=0x0
[20:34:37.156] : Fn 1097903 T1 0827 T2 01 T3 26 Time 00 06 09 840
[20:34:37.267] PAL 12 : SynchChange[4375,213]
[20:34:37.302] : Fn 1097932 T1 0828 T2 04 T3 04 Time 00 06 09 980
[20:34:37.302] AT 01 : TaskName: CFW -- pbuf_alloc(length=44)
[20:34:37.302] AT 01 : TaskName: CFW -- pbuf_alloc(length=44) == 0x82169f88
[20:34:37.302] : Detected event: 0x9db00000
[20:34:37.302] : Detected event: 0x9db10000
[20:34:37.302] AT 01 : TaskName: CFW -- tcpip_thread: PACKET 0x8211b408
[20:34:37.302] AT 01 : TaskName: CFW -- ip_input: iphdr->dest 0x6dee9e0a netif->ip_addr 0x6dee9e0a (0x0, 0x0, 0x6dee9e0a)
[20:34:37.302] AT 01 : TaskName: CFW -- ip4_input: packet accepted on interface GP
[20:34:37.302] AT 01 : TaskName: CFW -- ip4_input:
[20:34:37.302] AT 01 : TaskName: CFW -- IP header:
[20:34:37.307] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.307] AT 01 : TaskName: CFW -- | 4 | 5 | 0x04 | 44 | (v, hl, tos, len)
[20:34:37.307] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.307] AT 01 : TaskName: CFW -- | 17453 |010| 0 | (id, flags, offset)
[20:34:37.307] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.307] AT 01 : TaskName: CFW -- | 46 | 6 | 0x6743 | (ttl, proto, chksum)
[20:34:37.307] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.314] AT 01 : TaskName: CFW -- | 107 | 191 | 60 | 141 | (src)
[20:34:37.314] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.314] AT 01 : TaskName: CFW -- | 10 | 158 | 238 | 109 | (dest)
[20:34:37.314] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.314] AT 01 : TaskName: CFW -- ip4_input: p->len 44 p->tot_len 44
[20:34:37.314] AT 01 : TaskName: CFW -- pbuf_header: old 0x82169f98 new 0x82169fac (-20)
[20:34:37.314] AT 01 : TaskName: CFW -- TCP header:
[20:34:37.319] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.319] AT 01 : TaskName: CFW -- | 1883 | 54911 | (src port, dest port)
[20:34:37.319] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.319] AT 01 : TaskName: CFW -- | 3954207596 | (seq no)
[20:34:37.319] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.319] AT 01 : TaskName: CFW -- | 0000008314 | (ack no)
[20:34:37.319] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.324] AT 01 : TaskName: CFW -- | 5 | |011000| 229 | (hdrlen, flags (
[20:34:37.324] AT 01 : TaskName: CFW -- PSH
[20:34:37.324] AT 01 : TaskName: CFW -- ACK
[20:34:37.324] AT 01 : TaskName: CFW --
[20:34:37.324] AT 01 : TaskName: CFW -- ), win)
[20:34:37.324] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.324] AT 01 : TaskName: CFW -- | 0x47f3 | 0 | (chksum, urgp)
[20:34:37.324] AT 01 : TaskName: CFW -- +-------------------------------+
[20:34:37.324] AT 01 : TaskName: CFW -- inet_chksum_pseudo(): checksumming pbuf 0x82169f88 (has next 0x0)
[20:34:37.329] AT 01 : TaskName: CFW -- inet_chksum_pseudo(): pbuf chain lwip_chksum()=ffff
[20:34:37.329] AT 01 : TaskName: CFW -- pbuf_header: old 0x82169fac new 0x82169fc0 (-20)
[20:34:37.329] AT 01 : TaskName: CFW -- +-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags
[20:34:37.329] AT 01 : TaskName: CFW -- PSH
[20:34:37.329] AT 01 : TaskName: CFW -- ACK
[20:34:37.329] AT 01 : TaskName: CFW --
[20:34:37.329] AT 01 : TaskName: CFW -- -+-+-+-+-+-+-+-+-+-+-+-+-+-+
[20:34:37.329] AT 01 : TaskName: CFW -- State: ESTABLISHED
[20:34:37.329] AT 01 : TaskName: CFW -- tcp_receive: window update 14656
[20:34:37.335] AT 01 : TaskName: CFW -- tcp_receive: slow start cwnd 1752
[20:34:37.335] AT 01 : TaskName: CFW -- tcp_receive: ACK for 8314, unacked->seqno 8310:8314
[20:34:37.335] AT 01 : TaskName: CFW -- tcp_receive: removing 8310:8314 from pcb->unacked
[20:34:37.335] AT 01 : TaskName: CFW -- tcp_receive: queuelen 1 ...
[20:34:37.335] AT 01 : TaskName: CFW -- pbuf_free(0x82129698)
[20:34:37.335] AT 01 : TaskName: CFW -- pbuf_free: deallocating 0x82129698
[20:34:37.335] AT 01 : TaskName: CFW -- 0 (after freeing unacked)
[20:34:37.340] AT 01 : TaskName: CFW -- tcp_receive: pcb->rttest 703 rtseq 8310 ackno 8314
[20:34:37.340] AT 01 : TaskName: CFW -- tcp_receive: experienced rtt 2 ticks (1000 msec).
[20:34:37.340] AT 01 : TaskName: CFW -- tcp_receive: RTO 8 (4000 milliseconds)
[20:34:37.340] AT 01 : TaskName: CFW -- lwip_tcp_event conn=0x82124c94,lwip_event:1,pcb:0x8213a0a8
[20:34:37.340] AT 01 : TaskName: CFW -- tcp_recved: received 4 bytes, wnd 23040 (0).
[20:34:37.340] AT 01 : TaskName: CFW -- mqtt_parse_incoming: Remaining length after fixed header: 2
[20:34:37.340] AT 01 : TaskName: CFW -- mqtt_parse_incoming: msg_idx: 4, cpy_len: 2, remaining 0
[20:34:37.438] AT 01 : TaskName: CFW -- mqtt_message_received: PUBCOMP response with id 36

demo.gps源码程序问题

烧录gps的源码后,串口连续接收到信息,如果想每隔一段时间发送,是否只需再while里加入os_sleep
while(1)
{
if(OS_WaitEvent(gpsTaskHandle, &event, OS_TIME_OUT_WAIT_FOREVER))
{
EventDispatch(event);
OS_Free(event->pParam1);
OS_Free(event);
}
}

Trace等使用%s时,只能输出前三位(v1.402)

今天测试之前的IMEI读取时,发现只能显示前三位,后使用demo/imei也是如此,后续尝试使用%s单独输出一串文字也是这情况。版本v1.402,在使用v1.401时正常。

谢谢!

a9g关于低功耗应用

二次开发,如何让a9g进入最低功耗呢?我们项目需要用电池供电,就是定期采集下几个传感器的数据和gps位置数据并上报到服务器,然后就让a9g进入最低功耗,时间到了再唤醒自己再采集一次数据并上报,如此循环。好像目前没有文档说到如何进入低功耗和如何定期唤醒的,多谢指导!

关于A9G的SDK的API问题

请问目前SDK是否支持SPI接口、I2C2接口、ADC接口的函数,最主要的就是ADC功能的API,其他的可以用GPIO模拟都无所谓。在你们淘宝店看到的是写着支持这些功能。不过我在SDK里面没有找到相应的ADC的API,还有你们的论坛有关资料我都看过了。目前项目开发准备用这个模块当主控,还麻烦贵公司给个满意答复,谢谢!

A9G信息上传服务器

如何连接服务器的tcp地址及端口,把模块的GPS信息定时发送到服务器,这方面的源码可否提供

ADC and POWER management support?

hello i would like to use your product in low power application using gps and gprs, i need to use power management modes to save power, and adc to read voltages of battery and of usb charging port, i didnt find out how to implement them from the sdk, is there support for the 2 ADC ports ? is there power modes and a way to switch between them ?

关于 I2C 的疑问

  1. 我们选用了一个基于I2C的温湿度传感器SHT30(PDF手册见此),它的读取都是先写2字节长度的命令,随后直接读取(如图),而你们提供的I2C_ReadBytes()函数只能写1字节长的内容随后执行读取,虽可以用I2C_WriteBytes()来写2字节命令,但是无法单独调用读取来记录数据。请问能否提供单独拆开的读取部分或者可以指定 I2C_ReadBytes() 中的 memAddr 的长度之类的方式吗?谢谢!

image

  1. /// \brief I2C_Error_t I2C_WriteBytes(I2C_ID_t i2c, uint32_t slaveAddr, uint32_t memAddr, CONST uint8_t* pData, uint32_t length);

    这里注释少了个参数(漏了个memAddr的说明)

谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.