原创 开源物联网技术--OLED屏驱动软硬件设计分享

2024-9-25 14:17 127 0 分类: 物联网

一、物联网系统中为什么要使用OLED屏

卓越的显示效果

  • 高对比度和鲜艳色彩:OLED屏幕能够自发光,因此能够实现极高的对比度和鲜艳的色彩表现,这在物联网设备的显示界面上尤为重要,可以为用户提供更清晰、更生动的视觉体验。
  • 广视角:OLED屏幕的可视角度非常广,用户无论从哪个方向观看都能获得良好的显示效果,这在需要多人观看的物联网应用场景中尤为适用。

低功耗与长寿命

  • 低功耗:OLED屏幕在显示黑色时几乎不耗电,因为黑色像素点是不发光的。这一特性使得OLED驱动芯片在物联网设备中能够显著降低功耗,延长设备的使用时间。
  • 长寿命:虽然传统OLED屏幕存在烧屏问题,但现代OLED技术和驱动芯片设计已经大大改善了这一问题,使得OLED屏幕在物联网设备中的使用寿命得到保障。

灵活性与创新性

  • 轻薄设计:OLED屏幕可以做得非常轻薄,这使得物联网设备在设计上更加灵活,可以适应各种形状和尺寸的需求。
  • 可弯曲和可折叠:OLED屏幕还具有可弯曲和可折叠的特性,这为物联网设备的设计提供了更多的可能性,如可穿戴设备、柔性显示屏等。

简化设计与降低成本

  • 集成化设计:OLED驱动芯片通常将触控芯片和显示驱动芯片集成在一起,形成TDDI(触控与显示驱动集成)芯片,这大大简化了物联网设备的硬件设计,降低了制造成本。
  • 减少外部组件:OLED驱动芯片内置了多种功能,如对比度控制、显示RAM和振荡器等,减少了外部组件的需求,进一步降低了系统的复杂性和成本。

市场与技术趋势

  • 市场需求:随着物联网技术的不断发展,对高清晰度、低功耗、灵活设计的显示屏需求日益增加,OLED驱动芯片正好满足了这些需求。
  • 技术进步:OLED技术和驱动芯片设计不断取得突破,性能不断提升,成本不断降低,为物联网系统的广泛应用提供了有力支持。

具体应用场景

智能手机

  • 中高端产品:OLED技术在智能手机领域的应用已经相当成熟,特别是在中高端产品中,OLED显示屏因其色彩鲜艳、对比度高、可弯曲等特性而备受欢迎。OLED驱动芯片作为这些显示屏的核心组件,对于提升手机的显示效果和用户体验至关重要。
  • 技术趋势:随着OLED技术的不断发展,如折叠屏、屏下摄像头等技术的出现,对OLED驱动芯片提出了更高的要求。例如,支持LTPO(Low-Temperature Polycrystalline Oxide)动态刷新率技术的OLED驱动芯片能够更好地适应折叠屏手机的需求,提升续航能力和显示效果。

平板电脑

  • 轻薄化设计:OLED显示屏的轻薄特性使得其在平板电脑领域具有广泛应用。OLED驱动芯片通过控制显示屏的像素点,实现高清晰度、高色彩饱和度的显示效果,同时降低功耗,延长设备的使用时间。
  • 高端市场:在高端平板电脑市场中,OLED显示屏已经成为标配。OLED驱动芯片作为这些显示屏的核心组件,对于提升平板电脑的显示效果和竞争力具有重要作用。

车载显示

  • 仪表盘和中控屏:随着汽车智能化的发展,车载显示屏的尺寸和分辨率不断提高。OLED显示屏因其出色的显示效果和可弯曲特性,在车载仪表盘和中控屏等领域具有广泛应用前景。OLED驱动芯片通过提供稳定、高效的驱动信号,确保车载显示屏的显示效果和稳定性。
  • 未来趋势:随着自动驾驶技术的不断发展,车载显示屏将扮演更加重要的角色。OLED驱动芯片将继续优化其性能,以适应车载显示屏的更高要求。

电视

  • 高端市场:OLED电视因其出色的色彩表现和对比度,在高端市场占据一席之地。OLED驱动芯片作为OLED电视的核心组件之一,对于提升电视的显示效果和画质具有重要作用。
  • 大尺寸化:随着OLED技术的不断发展,大尺寸OLED电视已经成为可能。OLED驱动芯片需要支持更高的分辨率和更大的像素点数量,以确保大尺寸OLED电视的显示效果和稳定性。

可穿戴设备

  • 智能手表和智能手环:OLED显示屏在可穿戴设备领域的应用非常广泛。OLED驱动芯片通过控制显示屏的亮度和色彩,实现低功耗、高清晰度的显示效果,提升可穿戴设备的用户体验。
  • 健康监测:随着健康监测功能的不断加入,可穿戴设备对显示屏的显示效果和稳定性提出了更高要求。OLED驱动芯片需要不断优化其性能,以适应可穿戴设备的多样化需求。

其他领域

  • 游戏显示面板:随着游戏产业的发展,对显示面板的要求越来越高。OLED显示屏因其出色的色彩表现和刷新率,在游戏显示面板领域具有广泛应用前景。OLED驱动芯片需要支持高刷新率、低延迟等特性,以确保游戏画面的流畅性和清晰度。
  • 笔记本电脑:随着笔记本电脑轻薄化趋势的加剧,OLED显示屏逐渐成为笔记本电脑领域的新宠。OLED驱动芯片通过提供高效、稳定的驱动信号,确保笔记本电脑显示屏的显示效果和稳定性。

二、OLED驱动芯片的行业知识介绍

OLED驱动芯片的定义与作用

  • 定义:OLED驱动芯片是OLED显示屏的“大脑”,它通过对电流的控制来影响OLED面板的成像质量。
  • 作用:
  1. 控制OLED面板的显示,包括像素的亮度、色彩等。
  2. 支持不同的像素分辨率、接口类型和其他功能性指标,决定OLED屏的应用场景。

OLED驱动芯片的技术特点

  • 技术难度:OLED驱动芯片的技术门槛较高,需要处理OLED面板制程不完美导致的各类电学、光学特性不均匀的补偿功能。
  • 图像算法:相比LCD显示芯片,OLED显示芯片多了很多特有的图像算法,如子像素渲染(SPR)、mura补偿(demura)、圆角补偿(Round/Notch)、电流补偿(IRC)、串扰补偿(CTC)、烧屏亮度补偿(Deburin)等。
  • 制程工艺:目前,用于AMOLED驱动芯片的主要制程工艺是40nm和28nm。虽然全球范围内已有多家芯片代工厂掌握了这些工艺,但能够提供成熟产能的晶圆代工厂商有限,如台积电、三星电子、联华电子、格罗方德和中芯国际。

OLED驱动芯片的分类

1、按技术方向分类

  • 带Ram的IC
  • 特点:此类OLED驱动芯片内置了Demura Ram和Display Ram。Demura Ram用于存储屏幕显示不均等问题的补偿数据,以提升显示效果;Display Ram则用于存储系统传输的图片数据,实现静态画面的低功耗显示。
  • 应用:由于功耗低、显示效果好,带Ram的OLED驱动芯片是目前各家终端量产的主力。
  • Ram-less IC
  • 特点:保留了Demura Ram,但去掉了Display Ram。这意味着主机需要持续送图给OLED驱动芯片,以支持视频等动态内容的显示。
  • 应用:在视频场景上,预计功耗与带Ram的IC相差不大,但在静态场景下功耗会较高。
  • TDDI(显示&触控集成的IC)
  • 特点:将触摸屏控制器集成在OLED驱动芯片中,实现了触控芯片与显示驱动芯片之间更高效的通信,降低了显示噪声,并有利于移动电子设备的薄型化、窄边框设计。
  • 应用:目前主要应用于LCD屏幕的智能手机,但在OLED领域也在逐步推广。

2、按功能和应用场景分类

  • 基础型OLED驱动芯片
  • 特点:提供基本的显示驱动功能,适用于对显示效果要求不高的应用场景。
  • 示例:一些低分辨率、低功耗的OLED显示屏可能采用此类芯片。
  • 高性能OLED驱动芯片
  • 特点:支持高分辨率、高刷新率、低功耗等特性,适用于对显示效果要求较高的应用场景。
  • 示例:智能手机、平板电脑、高端电视等设备的OLED显示屏通常采用此类芯片。
  • 专用型OLED驱动芯片
  • 特点:针对特定应用场景进行优化设计,具有特定的功能和性能特点。
  • 示例:车载显示器、可穿戴设备等领域的OLED显示屏可能采用专用型驱动芯片。

3、按接口类型分类

  • I2C接口OLED驱动芯片
  • 特点:采用I2C通信协议与主控设备连接,具有接口简单、通信速度适中等特点。
  • 示例:SSD1306、SH1106等芯片支持I2C接口。
  • SPI接口OLED驱动芯片
  • 特点:采用SPI通信协议与主控设备连接,具有通信速度快、可支持多通道通信等特点。
  • 示例:SSD1351、ST7735等芯片支持SPI接口。
  • 并行接口OLED驱动芯片
  • 特点:采用并行通信方式与主控设备连接,具有数据传输速度快、接口灵活等特点。
  • 示例:部分早期或特定型号的OLED驱动芯片可能支持并行接口。

4、按市场主流类型分类

根据当前市场情况,主流OLED驱动芯片主要包括以下几类:

  • LCD显示驱动芯片(LCD DDIC)
  • 尽管这里提到的是LCD显示驱动芯片,但OLED领域也有类似的分类方式。不过,由于OLED和LCD的显示原理不同,OLED驱动芯片在设计和功能上会有所区别。
  • 触控显示整合驱动芯片(TDDI)
  • 如前所述,TDDI芯片将触摸屏控制器与显示驱动芯片集成在一起,广泛应用于智能手机等移动设备。
  • OLED显示驱动芯片(OLED DDIC)
  • 这是专门为OLED显示屏设计的驱动芯片,具有控制OLED发光单元开关、调节亮度、色彩等功能。

OLED驱动芯片的选型参数

1、分辨率

  • 定义:OLED驱动芯片的分辨率指的是其能够驱动的OLED显示屏的像素点数量,通常以“水平像素点×垂直像素点”的形式表示。
  • 重要性:分辨率决定了显示屏的清晰度和细腻程度,是选择驱动芯片时的重要考虑因素。
  • 示例:SSD1306和SSD1308等驱动芯片的分辨率均为128x64点矩阵面板,适用于小型便携式应用。

2、电源电压

  • 定义:包括IC逻辑电源电压(VDD)和面板驱动电压(VCC)。
  • 重要性:电源电压决定了芯片的工作环境和稳定性,不同的应用场景需要选择适合的电源电压范围。
  • 示例:对于SSD1306和SSD1308等芯片,IC逻辑的VDD通常为1.65V至3.3V,而面板驱动的VCC则为7V至15V。

3、电流能力

  • 定义:包括OLED驱动的最大输出电压、最大源电流和最大汇电流等。
  • 重要性:这些参数决定了芯片的驱动能力和功耗水平,对于保证显示屏的正常工作至关重要。
  • 示例:SSD1306和SSD1308等芯片在OLED驱动输出电压上最大可达15V,SSD1306的段最大源电流为100uA,公共最大汇电流为15mA。

4、亮度控制

  • 定义:OLED驱动芯片通常具有亮度控制功能,通过调整对比度或亮度级数来改变显示屏的亮度。
  • 重要性:亮度控制对于提升用户体验、降低功耗等方面具有重要意义。
  • 示例:SSD1306和SSD1308等芯片均提供256级亮度控制,用户可以根据需要调整显示屏的亮度。

5、接口类型

  • 定义:OLED驱动芯片与微控制器(MCU)之间的通信接口类型,常见的有I2C接口、SPI接口、6800/8000系列并行接口等。
  • 重要性:接口类型决定了芯片与MCU之间的通信方式和数据传输效率,对于系统的整体性能和稳定性具有重要影响。
  • 示例:SSD1306和SSD1308等芯片均支持I2C接口、SPI接口以及6800/8000系列并行接口,用户可以根据实际需要选择合适的接口类型。

6、其他参数

  • 工作温度范围:决定了芯片在不同温度环境下的工作稳定性和可靠性。
  • 封装形式:如COG和COF等封装形式,对芯片的尺寸、安装方式和散热性能等有影响。
  • 可编程帧速率和复用率:这些参数决定了显示屏的刷新率和显示效果,对于动态显示应用尤为重要

OLED驱动芯片的厂商

国际厂商

韩国厂商

  • 三星电子系统LSI:在OLED驱动芯片(DDI)市场占据领先地位,特别是在智能手机领域。据市场调查,三星电子系统LSI在OLED DDI市场的占有率较高,且为苹果旗舰智能手机iPhone提供了OLED DDI供应。
  • LSI:主力供应给三星,并同时供应给国内的华米OV等品牌。
  • Siliconworks:几乎是苹果手机的独供厂商,技术能力不容轻视。
  • Magnachip:原计划被大陆收购,但因美国芯片制裁被叫停,现阶段开发针对国产市场的芯片。

台湾厂商

  • Novatek:国产OLED屏幕的主力供应商,已进入华米OV等头部品牌客户。
  • Raydium:在行业内相对缺料的环境下,也打入了OPPO、vivo、荣耀等品牌客户。
  • Ilitek:与oppo合作关系密切,主要供应给oppo和联想。
  • 联咏:中国台湾企业中唯一一家OLED DDI占有率达到两位数的企业,且在LCD DDI市场也有显著表现。

美国厂商

  • 新思:其OLED DDIC产品目前全部供应给华为和荣耀。

大陆厂商

大陆在OLED驱动芯片领域的技术能力虽然起步较晚,但也在逐步进步并争取市场份额。主要代表厂商包括:

  • Chipone、Eswin、云英谷:在疫情期间因缺货,在华为和荣耀有接近百万级别的量产。
  • 芯颖、晟合、昇显微:主要供货给华强北等维修市场。
  • 韦尔:虽然进入OLED DDIC行业较晚,但推出的产品已处于验证阶段,后续是否量产还有待观察。
  • 华为海思:也在开发自己的OLED显示驱动芯片,但受特殊背景影响,预期后期仍将处于相对被动的局面。

OLED驱动芯片的市场现状

  • 需求增长:随着OLED面板在电视、智能手机、智能手表等领域的广泛应用以及在新兴应用领域(如游戏显示面板、笔记本电脑、平板电脑、车用产品)的渗透率不断提升,OLED驱动芯片的需求量也在快速增长。据Omdia数据,2022年OLED DDIC出货量约10亿颗,预计2023年OLED DDIC出货量有望同比增长14%,达到11.6亿颗。
  • 竞争格局:目前,韩国的三星LSI和美格纳(Magna Chip)在OLED驱动芯片市场占据主导地位,两家企业的市场份额已近80%。而中国大陆在OLED驱动IC方面的市场占有率还不到5%,但国内芯片厂商自研OLED驱动芯片的进程正在加快,有望补齐我国OLED产业的短板。

OLED驱动芯片的发展趋势

  • 技术创新:随着OLED技术的不断发展,新的技术点如LTPO动态刷新技术、屏下摄像头技术、分区刷新率技术等不断涌现,这些都需要OLED显示芯片开发新的驱动方式和专属功能来协同使用。
  • 产能扩张:尽管OLED驱动芯片技术门槛较高,但国内芯片厂商正在加快自研进程,并通过与显示面板企业的紧密合作来降低研发和量产成本。随着产能的逐步扩大,OLED驱动芯片的供应紧张状况有望得到缓解。

OLED驱动芯片的其他重要信息

  • 全球趋势:根据群智咨询的调查数据,预计2024年全球OLED驱动芯片需求(仅28/40nm制程)将同比增长约17.9%,中国内地OLED驱动芯片需求同比增长达32.2%。这表明OLED驱动芯片市场在全球范围内,特别是在中国内地地区,有着显著的增长潜力。
  • 供应链合作:OLED驱动芯片的供应链合作复杂,涉及多个设计公司和制造厂商。设计公司如LSI、Novatek等通过与晶圆代工厂如UMC、TSMC等的紧密合作,实现了OLED驱动芯片的大规模量产。

三、OLED驱动芯片的硬件设计方案

本文主要采用了晶门半导体有限公司的SSD1315做为驱动芯片。

一、SSD1315基本信息

  • 类型:单芯片CMOS OLED/PLED驱动控制芯片。
  • 功能:直接从内部12864位GDDRAM(图形显示数据RAM)中显示数据,支持单色12864点阵显示。
  • 接口方式:SSD1315支持多种接口方式,包括6800、8080、SPI和I2C等,这使得它可以根据不同的应用需求选择合适的通信方式。

二、SSD1315技术特点

  • 内存寻址模式:SSD1315支持三种内存寻址模式,包括水平寻址模式、垂直寻址模式和页寻址模式。这些模式允许用户根据需要选择合适的读写方式,提高显示效率。
  • 显示控制:SSD1315提供了丰富的显示控制功能,如设置显示起始行、对比度控制、段重映射、正反显示、显示开关等。这些功能使得用户可以灵活控制OLED显示屏的显示效果。
  • 滚动功能:SSD1315支持水平和垂直滚动功能,用户可以通过设置滚动区域和滚动方向来实现复杂的显示效果。
  • 硬件配置:SSD1315的硬件配置灵活,可以通过设置不同的引脚电平来选择不同的工作模式。此外,它还支持多种硬件配置选项,如设置COM输出扫描方向、Vcomh级别等。

三、SSD1315应用场景

SSD1315广泛应用于各种需要OLED显示屏的场合,如电子标签、仪器仪表、消费电子产品等。由于其低功耗、高对比度、快速响应等优点,SSD1315在便携式设备和低功耗应用中尤为受欢迎。

硬件参考设计

研发设计注意使用事项

  • 硬件连接:在使用SSD1315时,需要确保硬件连接正确无误。特别是电源线和数据线的连接,必须按照规格书的要求进行连接。
  • 初始化设置:在使用SSD1315之前,需要进行初始化设置。这些设置包括设置内存寻址模式、显示控制参数等。正确的初始化设置是确保OLED显示屏正常工作的关键。
  • 驱动程序:为了控制SSD1315并驱动OLED显示屏,需要编写相应的驱动程序。这些驱动程序需要根据SSD1315的规格书进行编写,以确保与芯片的兼容性和稳定性。

四、OLED驱动芯片的软件设计方案

本文采用了奇迹物联的红豆版开源技术平台为主控单元,一步步手把手教会读者如何使用红豆版开源平台编写SSD1315驱动。这里对代码就不多详解,如果需要详细了解,请到奇迹物联的红豆版开源平台了解详细代码讲解。

1 Gitee链接地址

Demo位于amaziot_bloom_os_sdk\sample\3rd\3.1_SSD1315

Gitee源码地址:https://gitee.com/ning./hongdou

Github源码地址:https://github.com/ayumid/hongdou

编译指令:.\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\3.1_SSD1315

2 组件功能介绍

驱动OLED显示图片,不同大小的汉字,字符,数字;画圆,画矩形,画线;OLED驱动使用SSD1315。任何品牌的OLED,只要是驱动芯片使用的SSD1315,都可以使用本驱动。驱动使用模拟spi实现。

使用SSD1315作为主控的OLED,硬件有两种接法,区别是是否使用DC引脚。使用DC引脚,需要主控来控制DC引脚确定当前发送的是命令还是数据,不使用DC引脚,需要主控在发送数据之前发送一个bit,来确定是命令还是数据,具体查看drv_ssd1315_wr_byte的实现。

3 代码讲解

1 drv_ssd1315_show_picture

功能:该函数用于,显示图片。

参数:

参数

释义

x,y

起点坐标

sizex,sizey

图片长宽

BMP[]

要写入的图片数组

mode

反色显示;1,正常显示

返回值:无

示例:

C
//显示图片,注意参数和实际点阵大小一致
drv_ssd1315_show_picture(0,12,132,37,BMP1,1);

2 drv_ssd1315_scroll_display

功能:该函数用于,滚动显示汉字。

参数:

参数

释义

num

显示汉字的个数

space

每一遍显示的间隔

mode

0,反色显示;1,正常显示

返回值:无

示例:

C
//滚动显示汉字
drv_ssd1315_scroll_display(14,4,1); //3

3 drv_ssd1315_show_chinese

功能:该函数用于,显示汉字。

参数:

参数

释义

x,y

起点坐标

num

汉字对应的序号

mode

0,反色显示;1,正常显示

返回值:无

示例:

C
//显示不同大小的汉字
drv_ssd1315_show_chinese(0,0,0,16,1); //16*16
drv_ssd1315_show_chinese(16,0,0,24,1); //24*24
drv_ssd1315_show_chinese(24,25,0,32,1);//32*32
drv_ssd1315_show_chinese(64,0,0,64,1); //64*64

4 drv_ssd1315_show_num

功能:该函数用于,显示数字。

参数:

参数

释义

x1,y1

起始坐标

x2,y2

终止坐标

color

线的颜色

返回值:无

示例:

C

5 drv_ssd1315_pow

功能:该函数用于,显示数字。

参数:

参数

释义

m

底数

n

指数

返回值:无

示例:

C
temp=(num/drv_ssd1315_pow(10,len-t-1))%10;

6 drv_ssd1315_show_string

功能:该函数用于,显示字符串。

参数:

参数

释义

x,y

起点坐标

size1

字体大小

*chr

字符串起始地址

mode

0,反色显示;1,正常显示

返回值:无

示例:

C
//显示字符,数字
drv_ssd1315_show_string(36,16,"AMAZIOT",16,1);
drv_ssd1315_show_string(26,32,"2024/06/01",16,1);

7 drv_ssd1315_show_char

功能:该函数用于,在指定位置显示一个字符,包括部分字符。

参数:

参数

释义

x,y

显示坐标

size1

选择字体 6x8/6x12/8x16/12x24

mode

0,反色显示;1,正常显示

返回值:无

示例:

C
drv_ssd1315_show_char(48,48,t,16,1);//显示ASCII字符

8 drv_ssd1315_draw_circle

功能:该函数用于,画圆。

参数:

参数

释义

x,y

显示坐标

r

圆的半径

返回值:无

示例:

C

9 drv_ssd1315_draw_line

功能:该函数用于,画线。

参数:

参数

释义

x1,y1

起点坐标

x2,y2

结束坐标

返回值:无

示例:

C

10 drv_ssd1315_draw_point

功能:该函数用于,画点。

参数:

参数

释义

x,y

显示坐标

t

1 填充 0,清空

返回值:无

示例:

C

11 drv_ssd1315_clear

功能:该函数用于,清屏。

参数:无

返回值:无

示例:

C
drv_ssd1315_clear();

12 drv_ssd1315_refresh

功能:该函数用于,更新显存到OLED。

参数:无

返回值:无

示例:

C
drv_ssd1315_refresh();

13 drv_ssd1315_display_on

功能:该函数用于,开启OLED显示。

参数:

返回值:无

示例:

C

14 drv_ssd1315_wr_byte

功能:该函数用于,发送一个字节的数据,注意硬件DC引脚有误,会根据宏定义DRV_SSD1315_USED_DC_PIN来控制使用哪种驱动实现方式。

参数:

参数

释义

dat

数据

cmd

命令 数据

width

图片宽度

pic[]

图片数组

返回值:无

示例:

C
drv_ssd1315_wr_byte(0xAE,DRV_SSD1315_OLED_CMD);//--turn off oled panel

15 drv_ssd1315_display_turn

功能:该函数用于,屏幕旋转180度。

参数:

参数

释义

i

0 正常显示 1 翻转180度

返回值:无u

示例:

C

16 drv_ssd1315_color_turn

功能:该函数用于,反显函数。

参数:

参数

释义

i

0 正常显示 1 反色显示

返回值:无

示例:

C

4 Demo实战

4.1 创建一个Demo

复制20.1_file_xtu示例工程,到同一个文件夹下,修改文件名为3.1_SSD1315,如图:

4.2 修改makefile

增加文件组件所在目录头文件路径,和源文件路径,如图:

4.3 增加头文件

使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图:

4.4 修改代码

在Phase2Inits_exit 创建一个任务,如图:

4.5 宏定义介绍

  • sample_ssd1315_uart_printf

输出日志到DEBUG 串口,日志比较少,可以输出到这个串口,如果日志比较多,需要输出到usb口,以免不必要的问题出现

  • sample_ssd1315_catstudio_printf

输出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新对应版本mdb.txt文件,软件打开filtter过滤日志,只查看用户输出的日志

  • SAMPLE_SSD1315_STACK_SIZE

栈空间宏定义

4.6 全局变量介绍

  • sample_ssd1315_stack_ptr

任务栈空间,本例使用数组实现,用户在做项目时,可以预先估算下当先任务需要的大致栈空间,OS没有提供可以查看栈空间使用情况的API

  • sample_ssd1315_task_ref

任务指针

4.7 函数介绍

  • Phase1Inits_enter

底层初始化,本例空

  • Phase1Inits_exit

底层初始化,本例空

  • Phase2Inits_enter

底层初始化,本例空

  • Phase2Inits_exit

创建主任务,初始化消息队列,定时器,任务等。

代码片段:

C
{
int ret = 0;
GPIOConfiguration config = {0};

//创建定时�? OSATimerCreate(&sample_xl9535_int_detect_timer_ref);
//创建中断处理任务
OSATaskCreate(&sample_ssd1315_task_ref, sample_ssd1315_stack_ptr, SAMPLE_SSD1315_STACK_SIZE, 100, "ssd1315_task", sample_ssd1315_task, NULL);

}

  • sample_exat_rcv_uart_task

主任务,获取imsi,rsrq等参数信息。

代码片段:

C
void sample_ssd1315_task(void *param)
{
OSA_STATUS status = OS_SUCCESS;
float t=0;

drv_ssd1315_init();//初始化OLED
drv_ssd1315_color_turn(0);//0正常显示,1 反色显示
drv_ssd1315_display_turn(0);//0正常显示 1 屏幕翻转显示

while(1)
{
//显示图片,注意参数和实际点阵大小一致
drv_ssd1315_show_picture(0,12,132,37,BMP1,1);
drv_ssd1315_refresh();
sample_ssd1315_sleep(1);
drv_ssd1315_clear();
//显示汉字
drv_ssd1315_show_chinese(30,0,0,16,1);//
drv_ssd1315_show_chinese(48,0,1,16,1);//
drv_ssd1315_show_chinese(64,0,2,16,1);//
drv_ssd1315_show_chinese(82,0,3,16,1);//
//显示字符,数字
drv_ssd1315_show_string(36,16,"AMAZIOT",16,1);
drv_ssd1315_show_string(26,32,"2024/06/01",16,1);
drv_ssd1315_show_string(0,48,"ASCII:",16,1);
drv_ssd1315_show_string(63,48,"CODE:",16,1);
drv_ssd1315_show_char(48,48,t,16,1);//显示ASCII字符
t++;
if(t>'~')t=' ';
drv_ssd1315_show_num(103,48,t,3,16,1);
drv_ssd1315_refresh();
sample_ssd1315_sleep(1);
drv_ssd1315_clear();
//显示不同大小的汉字
drv_ssd1315_show_chinese(0,0,0,16,1); //16*16
drv_ssd1315_show_chinese(16,0,0,24,1); //24*24
drv_ssd1315_show_chinese(24,25,0,32,1);//32*32
drv_ssd1315_show_chinese(64,0,0,64,1); //64*64
drv_ssd1315_refresh();
sample_ssd1315_sleep(1);
drv_ssd1315_clear();
//显示不同大小的字符
drv_ssd1315_show_string(0,0,"AMAZIOT",8,1);//6*8 "AMAZIOT"
drv_ssd1315_show_string(0,8,"AMAZIOT",12,1);//6*12 "AMAZIOT"
drv_ssd1315_show_string(0,20,"AMAZIOT",16,1);//8*16 "AMAZIOT"
drv_ssd1315_show_string(0,36,"AMAZIOT",24,1);//12*24 "AMAZIOT"
drv_ssd1315_refresh();
sample_ssd1315_sleep(1);
//滚动显示汉字
drv_ssd1315_scroll_display(14,4,1);
}

}

4.8 编译

在SDK根目录打开命令行,输入命令.\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\3.1_SSD1315\

C++
PS F:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF
λ .\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\3.1_SSD1315\
子目录或文件 out\bin 已经存在。
命令语法不正确。
子目录或文件 build\obj 已经存在。
gnumake: Entering directory `F:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/3.1_SSD1315'
armcc.exe -c --cpu Cortex-R4 --no_unaligned_access -g -O2 --apcs /inter --diag_suppress 2084,1,2,177,188,223,550,1296,2795,6319,9931,9933 --diag_error=warning --gnu --thumb --loose_implicit_cast -DDATA_COLLECTOR_IMPL -DISPT_OVER_SSP -DDIAG_SSP_DOUBLE_BUFFER_USE_DYNAMIC_ALLOCATION -DENV_XSCALE -DL1_DCXO_ENABLED -DLTE_HIGH_MOBILITY_OPTIMIZATION -DRUN_XIP_MODE -DCRANE_Z2 -DCA_LONG_IPC_MSG -DNEZHA3 -DNEZHA3_1826 -DUPGRADE_PLMS -DUPGRADE_PLMS_SR -DLTE_GSMMULTIBCCH -DGPLC_LTE_RSSI_SCAN -DL1V_NEW_RSSI -DUPGRADE_PLMS_3G -DUPGRADE_PLMS_L1 -DUPGRADE_FG_PLMS -DFG_PLMS_URR -DUPGRADE_L1A_FG_PLMS -DUPGRADE_PLMS_STAGE_2 -DUPGRADE_MBCCH -DMULTI_BCCH_READY_IND -DURR_MRAT_ICS_SEARCH -DUPGRADE_ICS -DMRAT_NAS -DUPGRADE_PLMS_SEARCH_API -DICS_MBCCH -DICS_MBCCH_2G_RSSI -DDIAG_NEWPP -DPHS_SW_DEMO -DPHS_SW_DEMO_TTC -DPHS_SW_DEMO_TTC_PM -DFULL_SYSTEM -D_DDR_INIT_ -D_TAVOR_HARBELL_ -DUPGRADE_ARBEL_PLATFORM -D_TAVOR_B0_SILICON_ -DTDL1C_SPY_ENABLE -DDLM_TAVOR -DTAVOR -DFLAVOR_DUALCORE -DDEBUG_D2_MOR_REG_RESEREVED_ENABLE -D_DIAG_USE_COMMSTACK_ -D_TAVOR_DIAG_ -DPM_DEBUG_MODE_ENABLED -DPM_D2FULL_MODE -DPM_EXT_DBG_INT_ARR -DFEATURE_WB_AMR_PS -DMACRO_FOR_LWG -DHL_LWG -DOPTIMIZE_FOR_2G_BCCH -DPLAT_TEST -D_FDI_USE_OSA_ -DPLAT_USE_THREADX -DLWIP_IPNETBUF_SUPPORT -DCRANE_MCU_DONGLE -DAT_OVER_UART -DPHS_SW_DEMO_TTC_PM -DUPGRADE_LTE_ONLY -DEXT_AT_MODEM_SUPPORT -DLTEONLY_THIN_SINGLE_SIM -DLFS_FILE_SYS -DLFS_FILE_SYS_V2 -DPSM_ENABLE -DNO_PAHO_MQTT -DNO_XML -DNO_LWM2M -DREMOVE_MBEDTLS -DNO_AT_NET -DCRANE_SD_NOT_SUPPORT -DNTP -DYMODEM_EEH_DUMP -DENABLE_DM_LTEONLY -DLTEONLY_THIN -DNO_EXTEND_MY_Q_AT -DNOT_SUPPORT_HTTPS -DNOT_SUPPORT_PM813 -DCRANEL_4MRAM -DREMOVE_PB -DUART_NEW_VERSION -DREMOVE_MEP -DREMOVE_SMS -DREMOVE_ENVSIM -DAPN_INCODE -DLTEONLY_THIN_SINGLE_SIM_2MFLASH -DASR160X_OPENCPU_FEATURE -DENABLE_UART3_FEATRUE -DENABLE_UART4_FEATRUE -DYUGE_MBEDTLS_3_2_1 -DENABLE_MAC_TX_DATA_LOGGING -DDISABLE_NVRAM_ACCESS -DINTEL_UPGRADE_EE_HANDLER_SUPPORT -DLTE_W_PS -DL1_DUAL_MODE -DUPGRADE_HERMON_DUAL -DINTEL_UPGRADE_DUAL_RAT -DINTEL_UPGRADE_GPRS_CIPHER_FLUSH -DUPGRADE_ENHANCED_QUAD_BAND -DINTEL_2CHIP_PLAT -DI_2CHIP_PLAT -DUPGRDE_TAVOR_COMMUNICATION -DRUN_WIRELESS_MODEM -DFLAVOR_DDR12MB_GB1MB5 -DFEATURE_SHMEM -DACIPC_ENABLE_NEW_CALLBACK_MECHANISM -DRELIABLE_DATA -DMAP_NSS -DTV_FNAME="\"SW_PLATFORM=PMD2NONE PHS_SW_DEMO PHS_SW_DEMO_PM SRCNUCLEUS FULL_SYSTEM NOACRTC PDFLT PLAT_TEST PV2 DIAGOSHMEM NVM WITHL1V\"" -DTV_FDESC="\"SW_DESCRIPTION=\"" -DENABLE_ACIPC -D_DATAOMSL_ENABLED_ -DUSB_CABLE_DETECTION_VIA_PMIC -DMIPS_TEST -DMIPS_TEST_RAM -DFLAVOR_DIET_RAM -DNVM_INCLUDE -DMSL_INCLUDE -DMSL_POOL_MEM -DNO_AUDIO -DOSA_QUEUE_NAMES -D_DIAG_DISABLE_USB_ -DOSA_NUCLEUS -DOSA_USED -DPM_D2NONE_MODE -DCRANE_SOC_TEMPERATURE_SENSOR -DL1_SW_UPDATE_FOR_DIGRF -DPHS_L1_SW_UPDATE_R7 -DUPGRADE_LTE -DFRBD_CALIB_NVM -DFRBD_AGC_CALIB -DFRBD_FDT_CALIB -DHSPA_MPR -DCAPT_PARAMS_OPTIMIZE -DL1_WB_R99_ONLY -DL1V_WB_R99_ONLY -DINTERGRATED_RF_SUPPORT -DL1_RX_DIV_SUPPORT -DENABLE_OOS_HANDLING -DTAVOR_D2_WB_L1_SUPPORT -DL1_DDR_HIGH_FREQ -DUPGRADE_DIGRF3G_SUPPORT -DW_PS_PLUS_G_PAGING -D"NO_APLP=0" -DINTEL_UPGRADE_UNIFIED_VOICE_TASK -DINTEL_UPGRADE_R99 -DAPLP_SPY_ENABLE -D__TARGET_FEATURE_DOUBLEWORD -DWHOLE_UMTS_STACK -DUSE_TTPCOM_CSR_BLUETOOTH_AUDIO_GAIN_CONTROL -DL1_UPGRADE_R5 -DUPGRADE_EDGE -DUPGRADE_R4_FS1 -DINTEL_UPGRADE_GSM_CRL_IF -DUPGRADE_EGPRS_M -DINTEL_UPGRADE_EGPRS_M -DINTEL_UPGRADE_RF_PARAMS_IN_CF_TDS -DINTEL_UPGRADE_2SAMPLES_PER_SYMBOL -D"GPRS_MULTISLOT_CLASS=12" -D"EGPRS_MULTISLOT_CLASS=12" -DMARVELL_UPGRADE_BSIC_REDESIGN -DMSL_INCLUDE -DINTEL_HERMON_SAC -DCRANE_CUST_BUILD -DL1_SW_UPDATE_FOR_DIGRF -DFLAVOR_COM -DSILICON_PV2 -DSILICON_SEAGULL -DSILICON_TTC_CORE_SEAGULL -DPCAC_INCLUDE -Otime -DBUILD_DATE="\"06 07 2024\"" -DBUILD_TIME="\"15:00:50\"" -Iatcmds\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\yuge\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\UART\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\core\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\PMU\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\GPIO\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\posix\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\diag\diag_logic\src -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\SysCfg\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\platform\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\env\win32\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\BSP\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\platform\dev_plat\build -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\osa\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\threadx\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\nu_xscale\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\psm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\httpclient\src -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\diag\diag_logic\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\timer\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\intc\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\PM\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\pm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\TickManager\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\BSP\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\atcmdsrv\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\atparser\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\sdk\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\httpclient\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\ci\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\arch -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\ipv4 -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\ipv6 -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\lwip -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\netif -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\mmi_mat\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\tavor\Arbel\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\tavor\env\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\modem\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\duster\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\fota\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\I2C\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\ACIPC\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\fatsys\flash -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\FDI\src\INCLUDE -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\MMU\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\FDI\src\FDI_ADD -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\FDI\src\FM_INC -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\fatsys\fs\hdr -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\littlefs\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\tts\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\dial\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\csw_memory\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\utilities\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\commpm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\nvm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\EEhandler\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\EEhandler\src -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\RTC\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\ci_client\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\BT_device\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\UART\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\mrd\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\dma\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\softutil\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\SPI\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\websocket\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\atnet_srv\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\fotacomm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\Audio\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\ACM_COMM\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\audio_stub\src -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\aam\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\AudioHAL\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\dbgshell\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\opencpu\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\amaziot_bloom_os_sdk\utils -IF:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/3.1_SSD1315\am\inc -IF:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/3.1_SSD1315\atcmds\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\amaziot_bloom_os_sdk\3rd_drives -IF:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\amaziot_bloom_os_sdk\3rd_drives\SSD1315 -o build\obj/ext_at_cmds.o F:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/3.1_SSD1315/atcmds/src/ext_at_cmds.c
armlink.exe build\obj/main.o build\obj/ext_at_cmds.o build\obj/ext_at_controller.o build\obj/drv_ssd1315_oled.o \
-o F:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\out\bin\Arbel_PMD2NONE_40M.axf \
--via F:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\prebuilt_1606l\Arbel_PMD2NONE_targ_objliblist.txt \
--elf \
--scatter F:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\prebuilt_1606l\Crane_DS_4M_Ram_2M_Flash_XIP_CIPSRAM_Common_SingleSIM.sct \
--predefine="-DLTEONLY_THIN_SINGLE_SIM" --map --symbols --info sizes,totals \
--list F:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\out\bin\Arbel_PMD2NONE_40M.map \
--keep init.o(Header) --keep init.o(Vectors) --diag_suppress 6312,6314,6319,6329 \
--feedback F:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\out\feedbackLinkOptLteonlyThin_SingleSim_NoSMS.txt
F:\3.asr-b\cat.1-asr1606\1.software\BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\tools\buildimage_1606l.bat
SDK_PROD_TYPE : [DM]
SDK_CUST_SKU : [THIN_SINGLE_SIM_NO_SMS]
SDK_PS_MODE : [LTEONLY]
SDK_CHIP_VER : [Z2A0]
SDK_OS_TYPE : [TX]
Platform Convertion Tools v4.01 with PS option extension
Convertion done!
|INPUT |out\bin\cp_1606L.bin
|MARK |NAME |EXEADDR .LOADADDR.LENGTH .CPZLADDR|COMPRESS STASTIC |
|--------|--------|--------.--------.--------.--------|------------------------------|
|This Is LteOnly 4M|
|RW_CPZ_1|DDR_RW_ |7e119000.80066758.0000d32c.80067000|0000d32c->00003000
|This Is LteOnly 4M|
|RW_CPZ_2|PS_NCAH |7e388000.80073a84.00001300.8006a000|00001300->00001000
|This Is LteOnly 4M|
|RW_CPZ_3|ITCM |7e3dac00.80074d84.0000f51c.8006b000|0000f51c->0000a000
|This Is LteOnly 4M|
|RW_CPZ_4|CODE_PS |7e1aa000.800842a0.0002fe38.80075000|0002fe38->0001e000
|This Is LteOnly 4M|
|RW_CPZ_5|CODEPSB |7e1dc000.800b40d8.000339c0.80093000|000339c0->0001b000
|This Is LteOnly 4M|
|RW_CPZ_6|CODEPSC |7e213000.800e7a98.000323ec.800ae000|000323ec->0001b000
|This Is LteOnly 4M|
|RW_CPZ_7|CODEPSD |7e249000.80119e84.00028d88.800c9000|00028d88->0001a000
|This Is LteOnly 4M|
|RW_CPZ_8|CODEPSE |7e277000.80142c0c.0002e310.800e3000|0002e310->0001a000
|This Is LteOnly 4M|
|RW_CPZ_9|CODEPSF |7e2a9000.80170f1c.0001c948.800fd000|0001c948->00011000
|This Is LteOnly 4M|
|RW_CPZ_A|CODE_PL |7e2ca000.8018d864.0002fa44.8010e000|0002fa44->0001e000
|This Is LteOnly 4M|
|RW_CPZ_B|CODEPLB |7e2fa000.801bd2a8.00039058.8012c000|00039058->00021000
|This Is LteOnly 4M|
|RW_CPZ_C|CODEPLC |7e337000.801f6300.000268d4.8014d000|000268d4->00011000
|--------|--------|--------.--------.--------.--------|------------------------------|
| | 0x00205bd4 -> 0x00147000|
| | 2.022(MB) -> 1.277(MB)|
|------------------------------------------------------------------------------------|
cp_1606L.axf
cp_1606L.bin
cp_1606L.map
gnumake: Leaving directory `F:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/3.1_SSD1315'
"copy NEZHAC_CP_CNR_MIFI_TX.bin to ./ "

已复制 1 个文件。

4.9 生成固件

参考入门中开发工具,生成工具。

4.10 测试

测试步骤:

  • 参考编译教程,和文档开头的编译指令,进行编译
  • 按照编译教程选择对应的选项
  • 烧录

4.11 固件

上电后,屏幕会依次显示图片,不同大小的汉字,字符,数字;

(如有侵权,联系删除) 

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /2 下一条