LoRa点对点系统6 源代码结构

1 源代码结构

main.c      基于C语言系统的入口函数

main.h      系统的全局配置文件

Application  应用程序,以Contiki系统的protothread方式组织

Contiki      Contiki操作系统

Driver       驱动:ST官方驱动库和MCU外设驱动文件

Project      IAR环境下所有工程文档

RF         SX1278射频芯片驱动代码

 

2 使用源代码

在源代码文件main.h中,有如下宏编译语句:

#define CUR_PRODUCT    iWL882A

#define REL_VER    1 /* 0=debug; 1=release */

#define CUR_VER    “LoRaP2PTW V1.0.00 2016-10-20” /*current version */

 

它们代表如下含义:

CUR_PRODUCT:当前LoRa终端的硬件版本号,目前出厂为iWL882A;

REL_VER:0=debug版本,串口支持shell命令;

1=release版本,串口与评估软件通信;

CUR_VER:软件版本号,其中“LoRaP2PTW”不能更改,因为评估软件依赖

该版本编号来识别产品种类;

3  Main入口函数

void main(void)

{

/* Initialize hardware */

chip_Init();                                                                                                   1

SX1278InitPins();                                                                                        2

rtimer_init();                                                                                                 3

ss_Init();                                                                                                       4

cpc_Init();                                                                                                        5

#if (!REL_VER)

dp_Init();                                                                                                      6

#endif

 

/* EXPLAIN: enable INT before initialize process! */

HAL_ENABLE_INTERRUPTS();                                                                 7

/*Initialize contiki system */

process_init();                                                                                              8

 

/* Start process of user */

comm2trm_Init();                                                                                          9

network_Init();                                                                                            10

#if (!REL_VER)

monitor_Init();                                                                                             11

#endif

 

while (1)

{

while (0 < process_run())                                                                       12

{

null();                                                                                                  13

}

 

/* EXPLAIN: Set MCU to low power mode if have nothing to do. */

wfi();                                                                                                       14

}

}

Line#1:初始化MCU时钟和引脚等;

Line#2:初始化连接SX1278的SPI总线和中断控制线;

Line#3:初始化rtimer(高精度实时时钟);

Line#4:初始化SystSettings(系统参数)模块;

Line#5:初始化通信串口,它连接PC;

Line#6:如果是Debug版本,初始化调试串口;

Line#7:使能MCU硬件中断;

Line#8:初始化Contiki的进程模块;

Line#9:初始化comm2trm模块,同时启动comm2trm进程;

Line#10:初始化network模块,同时启动network进程;

Line#11:如果是Debug版本,初始化monitor模块,同时启动monitor进程;

Line#12:Contiki主循环函数,根据post和poll消息,调用对应的进程;

Line#13:空语句,为代码可读性而添加;

Line#14:节能指令,如果MCU空闲则进入WFI模式,可以被任意中断唤醒。

说明:LPWA物联网应用站(LPWAP.com)通过公开互联网收集、整理并转载有关LPWA物联网应用解决方案,以供广大LPWA应用开发者和爱好者共同学习交流和参考运用到实际生产生活中。本站所有转载的文章、图片、音频、视频等资料的版权归版权所有人所有并衷心感谢您的付出,由于本站采纳的非本站原创文章及图片等内容无法一一联系确认版权者,如果本网所选内容的文章原创作者认为其作品不宜放在本站,请及时通过以下留言功能通知我们采取适当措施,避免给双方造成不必要的经济损失。如果您希望保留文章在本站,但希望文章末尾提供对作者的致谢或者产品、网站交换链接的,也请将需求写入以下留言栏中,谢谢您的支持。让我们共同努力,打造万物互联的未来美好生活!

您的留言或需求: