0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_94171069 来源:jf_94171069 作者:jf_94171069 2024-09-23 16:49 次阅读

一、物联网系统中为什么要使用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面板的成像质量。

作用:

控制OLED面板的显示,包括像素的亮度、色彩等。

支持不同的像素分辨率、接口类型和其他功能性指标,决定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在便携式设备和低功耗应用中尤为受欢迎。

硬件参考设计

wKgaombxK3-ACXUtAAIvVqYKFZA994.jpg

研发设计注意使用事项

硬件连接:在使用SSD1315时,需要确保硬件连接正确无误。特别是电源线和数据线的连接,必须按照规格书的要求进行连接。

初始化设置:在使用SSD1315之前,需要进行初始化设置。这些设置包括设置内存寻址模式、显示控制参数等。正确的初始化设置是确保OLED显示屏正常工作的关键。

驱动程序:为了控制SSD1315并驱动OLED显示屏,需要编写相应的驱动程序。这些驱动程序需要根据SSD1315的规格书进行编写,以确保与芯片的兼容性和稳定性。

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

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

1 Gitee链接地址

Demo位于amaziot_bloom_os_sdksample3rd3.1_SSD1315

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

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

编译指令:.build.bat -l .amaziot_bloom_os_sdksample3rd3.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,正常显示

返回值:无

示例:

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

2 drv_ssd1315_scroll_display

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

参数:

参数 释义
num 显示汉字的个数
space 每一遍显示的间隔
mode 0,反色显示;1,正常显示

返回值:无

示例:

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

3 drv_ssd1315_show_chinese

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

参数:

参数 释义
x,y 起点坐标
num 汉字对应的序号
mode 0,反色显示;1,正常显示

返回值:无

示例:

//显示不同大小的汉字
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 线的颜色

返回值:无

示例:


5 drv_ssd1315_pow

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

参数:

参数 释义
m 底数
n 指数

返回值:无

示例:

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

6 drv_ssd1315_show_string

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

参数:

参数 释义
x,y 起点坐标
size1 字体大小
*chr 字符串起始地址
mode 0,反色显示;1,正常显示

返回值:无

示例:

//显示字符,数字
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,正常显示

返回值:无

示例:

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

8 drv_ssd1315_draw_circle

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

参数:

参数 释义
x,y 显示坐标
r 圆的半径

返回值:无

示例:


9 drv_ssd1315_draw_line

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

参数:

参数 释义
x1,y1 起点坐标
x2,y2 结束坐标

返回值:无

示例:


10 drv_ssd1315_draw_point

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

参数:

参数 释义
x,y 显示坐标
t 1 填充 0,清空

返回值:无

示例:


11 drv_ssd1315_clear

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

参数:无

返回值:无

示例:

drv_ssd1315_clear();

12 drv_ssd1315_refresh

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

参数:无

返回值:无

示例:

drv_ssd1315_refresh();

13 drv_ssd1315_display_on

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

参数:

返回值:无

示例:


14 drv_ssd1315_wr_byte

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

参数:

参数 释义
dat 数据
cmd 命令 数据
width 图片宽度
pic[] 图片数组

返回值:无

示例:

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

15 drv_ssd1315_display_turn

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

参数:

参数 释义
i 0 正常显示 1 翻转180度

返回值:无u

示例:


16 drv_ssd1315_color_turn

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

参数:

参数 释义
i 0 正常显示 1 反色显示

返回值:无

示例:


4 Demo实战

4.1 创建一个Demo

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

wKgZombxK4SAKMwBAABKrqkxlbI795.jpg

4.2 修改makefile

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

wKgaombxK4WAUJZ_AACDDRJa6aI930.jpg

4.3 增加头文件

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

wKgZombxK4aAUDu5AAAL6SJPuOk237.jpg

4.4 修改代码

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

wKgaombxK4eAI8nhAABPl1kvChU012.jpg

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

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

代码片段:

{
    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等参数信息。

代码片段:

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_sdksample3rd3.1_SSD1315

PS F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF
λ .build.bat -l .amaziot_bloom_os_sdksample3rd3.1_SSD1315
子目录或文件 outbin 已经存在。
命令语法不正确。
子目录或文件 buildobj 已经存在。
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"" -Iatcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyyugeinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalcoreinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalPMUinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalGPIOinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosposixinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicsrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswSysCfginc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatforminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xenvwin32inc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswBSPinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatformdev_platbuild -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xososainc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosthreadxinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosnu_xscaleinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacpsminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientsrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptimerinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopintcinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswPMinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoppminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilTickManagerinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopBSPinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatcmdsrvinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatparserinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonysdkinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacciinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcinclude -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludearch -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv4 -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv6 -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludelwip -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludenetif -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmmi_matinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorArbelinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorenvinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonymodeminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdusterinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacfotainc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalI2Cinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalACIPCinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysflash -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcINCLUDE -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalMMUinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFDI_ADD -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFM_INC -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysfshdr -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutillittlefsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacttsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdialinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilcsw_memoryinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoputilitiesinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopcommpminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilnvminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlerinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlersrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopRTCinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyci_clientinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalBT_deviceinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmrdinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopdmainc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilsoftutilinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalSPIinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacwebsocketinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacatnet_srvinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfotacomminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swACM_COMMinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swaudio_stubsrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopaaminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioHALinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhaldbgshellinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacopencpuinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdkutils -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_SSD1315aminc -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_SSD1315atcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdk3rd_drives -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdk3rd_drivesSSD1315  -o buildobj/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 buildobj/main.o buildobj/ext_at_cmds.o buildobj/ext_at_controller.o buildobj/drv_ssd1315_oled.o 
                -o F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.axf 
                --via F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lArbel_PMD2NONE_targ_objliblist.txt 
                --elf 
                --scatter F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lCrane_DS_4M_Ram_2M_Flash_XIP_CIPSRAM_Common_SingleSIM.sct 
                --predefine="-DLTEONLY_THIN_SINGLE_SIM" --map --symbols --info sizes,totals 
                --list F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.map 
                --keep init.o(Header) --keep init.o(Vectors) --diag_suppress 6312,6314,6319,6329 
                --feedback F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutfeedbackLinkOptLteonlyThin_SingleSim_NoSMS.txt
F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFtoolsbuildimage_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   |outbincp_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 固件

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

点击下载 OLED Demo固件

5 生态组件链接

OLED屏驱动

(如有侵权,联系删除)

五、如何了解更多OLED驱动芯片功能

本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

欢迎同学们走进AmazIOT知识库的世界!

这里是为物联网人构建的技术应用百科,以便帮助你更快更简单的开发物联网产品。

Cellular IoT Wiki初心:

在我们长期投身于蜂窝物联网 ODM/OEM 解决方案的实践过程中,一直被物联网技术碎片化与产业资源碎片化的问题所困扰。从产品定义、芯片选型,到软硬件研发和测试,物联网技术的碎片化以及产业资源的碎片化,始终对团队的产品开发交付质量和效率形成制约。为了减少因物联网碎片化而带来的重复开发工作,我们着手对物联网开发中高频应用的技术知识进行沉淀管理,并基于 Bloom OS 搭建了不同平台的 RTOS 应用生态。后来我们发现,很多物联网产品开发团队都面临着相似的困扰,于是,我们决定向全体物联网行业开发者开放奇迹物联内部沉淀的应用技术知识库 Wiki,期望能为更多物联网产品开发者减轻一些重复造轮子的负担。

Cellular IoT Wiki沉淀的技术内容方向如下:

wKgaombqoM2AYL2RAAQrZ8e-uz8392.jpg

奇迹物联的业务服务范围:基于自研的NB-IoT、Cat1、Cat4等物联网模组,为客户物联网ODM/OEM解决方案服务。我们的研发技术中心在石家庄,PCBA生产基地分布在深圳、石家庄、北京三个工厂,满足不同区域&不同量产规模&不同产品开发阶段的生产制造任务。跟传统PCBA工厂最大的区别是我们只服务物联网行业客户。

连接我们,和10000+物联网开发者一起 降低技术和成本门槛

让蜂窝物联网应用更简单~~

哈哈你终于滑到最重要的模块了,

千万不!要!划!走!忍住冲动!~

欢迎加入飞书“开源技术交流”,随时找到我们哦~

点击链接如何加入奇迹物联技术话题群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以获取加入技术话题群攻略

Hey 物联网从业者,

你是否有了解过奇迹物联的官方公众号“eSIM物联工场”呢?

这里是奇迹物联的物联网应用技术开源wiki主阵地,欢迎关注公众号,不迷路~

及时获得最新物联网应用技术沉淀发布

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2894

    文章

    43398

    浏览量

    366697
  • OLED屏
    +关注

    关注

    0

    文章

    160

    浏览量

    20769
  • 开源
    +关注

    关注

    3

    文章

    3146

    浏览量

    42082
收藏 人收藏

    评论

    相关推荐

    开源联网技术--数字温度传感器SCCK33112H6A软硬件计分

    一、联网系统中为什么要使用数字式温度传感器 联网系统中使用数字式温度传感器芯片的原因主要有以下几点: 高精度与稳定性 高精度测量:数字式温度传感器芯片,如DS18B20,采用芯片集
    的头像 发表于 09-24 10:54 277次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>物</b><b class='flag-5'>联网技术</b>--数字温度传感器SCCK33112H6A<b class='flag-5'>软硬件</b>设<b class='flag-5'>计分</b>享

    开源联网技术--TFT LCD驱动软硬件计分

    一、联网系统中为什么要使用 TFT-LCD联网系统中使用TFT-LCD(薄膜晶体管液晶显示器)
    的头像 发表于 09-23 16:46 180次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>物</b><b class='flag-5'>联网技术</b>--TFT LCD<b class='flag-5'>屏</b><b class='flag-5'>驱动</b><b class='flag-5'>软硬件</b>设<b class='flag-5'>计分</b>享

    开源联网技术--电量计量功能软硬件计分

    一、为什么要使用电量计量功能 节约资源:电量计量可以帮助人们控制用电量,从而达到节约资源的目的。在当前严峻的资源供应形势下,节约能源是我们应该重视的问题。 合理计费:电表可以帮助公共事业单位进行合理计费,以维护公共事业的正常运营。同时,使用者也能根据自己的实际用电量来支付相应的费用。 监控消耗:通过定期查看电量的使用情况,能够快速发现用电量异常的情况。及时修复故障,避免浪费资源和高额费用。 二、电量计量功
    的头像 发表于 09-23 16:44 79次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>物</b><b class='flag-5'>联网技术</b>--电量计量功能<b class='flag-5'>软硬件</b>设<b class='flag-5'>计分</b>享

    开源联网技术--AES加密功能技术分享

    一、AES加密功能 在联网行业中的应用 AES加密功能在联网行业中有着广泛的应用。随着联网技术
    的头像 发表于 09-11 14:50 242次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>物</b><b class='flag-5'>联网技术</b>--AES加密功能<b class='flag-5'>技术</b>分享

    什么是联网技术

    什么是联网技术联网技术(Internet of Things, IoT)是一种通过信息传感设备,按约定的协议,将任何物体与网络相连接,实现智能化识别、定位、跟踪、监管等功能的
    发表于 08-19 14:08

    红豆Cat 1开源 项目四: 从0-1设计一款TCP版本DTU产品的软硬件全过程

    引言 本文为奇迹联量产 DTU 产品设计资料分享,主要针对嵌入式 C 语言联网开发爱好者学习交流。可帮助以下人员降低联网产品开发门槛:
    的头像 发表于 07-12 14:43 192次阅读
    红豆Cat 1<b class='flag-5'>开源</b> 项目四: 从0-1设计一款TCP版本DTU产品的<b class='flag-5'>软硬件</b>全过程

    红豆Cat 1开源 项目三: 从0-1设计一款HTTP版本RTU 支持GNSS 产品的软硬件全过程

    本文为奇迹联量产 RTU 产品设计资料分享,主要针对嵌入式 C 语言联网开发爱好者学习交流。可帮助以下人员降低联网产品开发门槛:
    的头像 发表于 07-12 14:31 179次阅读
    红豆Cat 1<b class='flag-5'>开源</b> 项目三: 从0-1设计一款HTTP版本RTU 支持GNSS 产品的<b class='flag-5'>软硬件</b>全过程

    红豆Cat 1开源 项目二: 从0-1设计一款MQTT版本DTU 支持GNSS 产品的软硬件全过程

    软硬件定义、硬件计分析、软件设计分析,并详细讲解单一功能点功能模块的验证过程和测试验证方法。通过学习本内容,初学者可以在 1-2 天内完成一款 Cat 1 DTU产品的开发全过程,
    的头像 发表于 07-12 14:30 189次阅读
    红豆Cat 1<b class='flag-5'>开源</b> 项目二: 从0-1设计一款MQTT版本DTU 支持GNSS 产品的<b class='flag-5'>软硬件</b>全过程

    红豆Cat 1开源 项目一: 从0-1设计一款TCP版本RTU 支持Modbus+GNSS 产品的软硬件全过程

    软硬件定义、硬件计分析、软件设计分析,并详细讲解单一功能点功能模块的验证过程和测试验证方法。通过学习本内容,初学者可以在 1-2 天内完成一款 Cat 1 产品的开发全过程,快速提
    的头像 发表于 07-10 17:36 278次阅读
    红豆Cat 1<b class='flag-5'>开源</b> 项目一: 从0-1设计一款TCP版本RTU 支持Modbus+GNSS 产品的<b class='flag-5'>软硬件</b>全过程

    机智云联网:连接智能AirKiss配网技术

    联网的时代,智能硬件的快速发展为我们的生活带来了便利和舒适。然而,对于用户而言,智能设备的连接和配置往往是一个繁琐的过程。为了解决这一问题,机智云
    的头像 发表于 03-26 16:36 491次阅读

    电梯联网技术如何解决电梯管理的痛点?

    随着联网技术的不断发展,电梯行业也迎来了新的变革。电梯联网技术的应用为电梯管理带来了许多新的机遇和优势,同时也有效地解决了传统电梯管理中存在的各种痛点。 本文梯云
    的头像 发表于 03-19 10:09 366次阅读

    基于CW32单片机做的软硬件开源项目

    今天就再给大家分享一个基于CW32单片机做的软硬件开源项目,其中包括RTOS、GUI、蓝牙、电源管理等众多常用功能。
    的头像 发表于 10-19 10:17 915次阅读
    基于CW32单片机做的<b class='flag-5'>软硬件</b><b class='flag-5'>开源</b>项目

    软硬件融合的概念和内涵

    跟很多朋友交流,当提到软硬件融合的时候,他们会这么说:“软硬件融合,难道不是显而易见吗?我感觉在二三十年前就已经有这个概念了。”在他们的想法里,其实:软硬件融合等同于软硬件协同,甚至等
    的头像 发表于 10-17 14:36 1174次阅读
    <b class='flag-5'>软硬件</b>融合的概念和内涵