模块介绍

        YM310 X09 是一款基于EC716S/EC716E平台设计的小尺寸,高性能,超低功耗的 CAT1数据传输模组。模组支持LTE-FDD和LTE-TDD网络数据连接通信协议,支持3GPP Rel-13 Cat 1 bis,支持 WatchDog 硬件看门狗功能。 YM310 X09 设计为片式模组,采用LGA贴片封装,共有109个LGA引脚。模组尺 寸只有:(17.7±0.15) ×(15.8±0.15) ×(2.3±0.15)mm;YM310 X09 小身材,大应用,其和主流 的GSM和NB-IOT模组尺寸相同,能满足几乎所有M2M应用需求。

软件框架

环境准备 

  • windows环境(建议win10或以上)版本
  • 安装python3(推荐python3.12.5)
  • arm-gcc交叉编译器(下载链接)
  • YM310_X09系列模组以及USB线等硬件环境
  • Yopen软件代码(推荐使用git工具clone下载)

软件代码目录 

目录 介绍
api
功能 api 接⼝
bsp
底层代码,适配不同硬件(⼀般不需要了解)
components
功能组件,例如 http,mqtt,json 等
demo
样例代码,api 或者功能组件的代码样例
doc
帮助⽂档,api ⽂档或者⼯具使⽤说明等
project
⼯程构建⽂件,每个⽂件表⽰⼀个代码⼯程
out
中间⽂件,编译⾃动产⽣
tools
⼯程构建过程中使⽤的⼯具或脚本集合

 系统启动流程

系统启动后,首先执行 RomeCode,检查是否需要进入下载模式,如果没有进入下载,就跳入正常程序执行。正常程序依次执行三个部分:

  • 1、bootloader
  • 2、bsp
  • 3、app

其中 app 为 yopen 应用程序,入口函数app_main位于bsp\EC7XX\app_main.c文件中,这部分逻辑默认启动了位于Image$$LOAD_APP_TABLE区域的多个 demo 程序。可以根据自身需求做修改,但不能在这个函数中执行阻塞操作,这样会造成整个系统阻塞。建议在这里做一些初始化程序,然后创建 task,再做相应业务。

static void applicationsStartup(void)
{
	u32 appRegItemNum = (appRegItem_t *)(&(Image$$LOAD_APP_TABLE$$Limit)) - (appRegItem_t *)(&(Image$$LOAD_APP_TABLE$$Base));
	appRegItem_t * appRegTable = (appRegItem_t *)(&(Image$$LOAD_APP_TABLE$$Base));
	u32 itemIdx = 0;
	for(; itemIdx < appRegItemNum; itemIdx++)
	{
		yopen_task_t appTaskRef = NULL;
		yopen_rtos_task_create(&appTaskRef, appRegTable[itemIdx].stack_size_byte, appRegTable[itemIdx].startup_prio, appRegTable[itemIdx].app_name, appRegTable[itemIdx].app_entry, appRegTable[itemIdx].arvg);
	}
}


int app_main(void *argv)
{
	applicationsStartup();

    return 1;
}

 主要工程文件

主工程文件位于project目录下的xx.cmake文件,这个文件作为 cmake 的主要配置文件,告知 cmake,该工程需要的相关配置,下面是demo.cmake工程文件:

#####################################
#### 宏定义
#####################################
# add_compile_definitions(DEFINE_MACRO_TEST 
#                         PAHO_MQTT_STATIC
#                         NO_PERSISTENCE
#                         HIGH_PERFORMANCE
#             )
#####################################
#### 编译模块
#####################################
add_subdirectory(demo)
add_subdirectory(bsp/${YOPEN_BSP})
#####################################
#### 头文件
#####################################
# target_include_directories(${target} PRIVATE dir)

代码编译 

编译环境依赖两个工具,需要提前安装好:

  • 1、python3(已经验证过的版本 python3.12.5、3.8.5,其他版本如有问题请反馈 FAE)
  • 2、arm-gcc 交叉编译器

将提供的 arm-gcc 交叉编译器复制到 C 盘,修改gcc-arm-none-eabi-10-2020-q4-major文件名为gcc,确保 CMake 可以通过c:\gcc\bin\arm-none-eabi-gcc访问到编译。目录结构如下:

C:\gcc\bin\arm-none-eabi-gcc.exe

添加环境变量:

默认编译

准备好编译环境后,就可以通过命令行运行build.bat进行编译:

编译成功后就会有如下显示:

选择工程编译

build.bat默认使用YM310_X90S.U62 demo作为默认参数,也支持通过添加参数,编译不同bsp_moduleproject项目,参数格式如下:

## 编译参数:
build.bat [bsp_module] [project]
## 举例:
    build YM310_X09C.S60 demo
    build YM310_X09S.U62 demo

编译完成

在out目录下生成编译完成文件。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐