rtthread是什么手机

rtthread是什么手机,第1张

不是手机。rtthread是一个创造与中国的开源物联网 *** 作系统,诞生于2006年,主要采用C语言编写,易懂,特性于方便移植,实现类似Android的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。

智慧树知到《DIY智慧小屋带你玩转物联网》2023见面课答案

1、在快速建立产品时,引导进来别人建立的物模型需要修改什么?()

AProductKey

BProductSecret

CDeviceSecret

DDeviceName

正确答案:ProductKey

2、查阅AT指令,如果我们只是做一个物联网的时钟,也就是准确时间是从网络上获取的,在设置北京时间为东八区后,你可选用哪个AT指令来完成。()

AAT+WJAPS

BAT+SYSTIME

CAT+MQTTKEEPALIVE

DAT+RTCGET

正确答案:AT+RTCGET

3、当串口接收传输过来的数据仅仅是长度不对时,可能的原因是:()

A波特率没设置好

B停止位设置错误

C缓存区大小没设置好

D硬件速度不够

正确答案:缓存区大小没设置好

1、NB-IoT与LoRa均为LPWAN的重要实现方式。下列两种网络技术的对比,说法正确的是:()

ALoRa的信道带宽相比NB-IoT更宽。

BLoRa的传输距离比NB-IoT更远

CLoRa的传输速度比NB-IoT更快

DLoRa的建网成本比NB-IoT更低

正确答案:LoRa的传输距离比NB-IoT更远

2、嵌入式实时 *** 作系统蓬勃发展的今天,以下不属于中国企业的RTOS是:()

ART-Thread

BAliOSThings

CFreeRTOS

DLiteOS

正确答案:FreeRTOS

3、FreeRTOS中任务(Task)可能处于:运行态、阻塞态、就绪态、挂起态四种之一,不同状态之间可以进行转换,但以下不可能直接实现的转换是:( )

A由就绪态到运行态

B由阻塞态到挂起态

C由就绪态到挂起态

D由挂起态到阻塞态

正确答案:由挂起态到阻塞态

1、智慧小屋的实现过程中,涉及到了物联网系统架构中的那几层? ()

A设备层

B网络层

C平台层

D应用层

正确答案:设备层#网络层#平台层#应用层

2、以下不属于物联网 *** 作系统特点的是()

A实时性

B安全性

C代码行数少

D具有丰富的功能组件

正确答案:代码行数少

3、课程里智慧小屋系统搭建过程中,没有使用以下哪种传感器:()

A温度传感器

B光敏传感器

CPM25传感器

D噪声传感器

正确答案:噪声传感器

4、课程里智慧小屋中设备接入阿里云物联网平台,是基于以下哪种协议:()

A Modbus

B MQTT

C CoAP

D其余选项都不对

正确答案: MQTT

5、智慧小屋中Arduino与WIFI模块之间的通信接口是:()

A I2C

B SPI

C UART

D其余选项都不对

正确答案: UART

1、NB-IoT技术是实现低功耗广域网的一个重要技术,之所以被称为窄带(Narrow Band)是因为它所占用的带宽仅为()

A180Hz

B180KHz

C18MHz

D18MHz

正确答案:180KHz

2、得益于占用带宽小的特点,NB-IoT支持带内部署的方式,即在原有通讯频段的基础上添加NB-IoT网络,目前应用来看,不支持NB-IoT带内部署的频段有:( )

A光通讯频段

BGSM网络频段

CUMTS网络频段

DLTE网络频段

正确答案:光通讯频段

3、窄带通信的技术标准最早由哪家组织\公司提出:( )

A3GPP

B中国电信

C华为

D高通

正确答案:华为

精炼的硬实时内核,调整官方系统。
RT-Thread是一个来自中国的开源物联网 *** 作系统,它提供了非常强的可伸缩能力:从一个可以运行在ARM Cortex-M0芯片上的极小内核,到中等的ARM Cortex-M3/4/7系统。

首先看下写作环境

NSThread 位于 Foundation 库中,是对 pthread 对象化的封装,首先看一下苹果给的API,后续会根据这些进行详细的说明。

这个是类可以直接访问的属性,使用的使用直接类方法调用就可以 [NSThread currentThread] 。

使用示例

用于判断是否是多线程

使用示例

下面看一下输出

每个线程都维护了一个键-值的字典,它可以在线程里面的任何地方被访问。你可以使用该字典来保存一些信息,这些信息在整个线程的执行过程中都保持不变。比如你可以使用它来存储在你的整个线程过程中 Run loop 里面多次迭代的状态信息。

使用示例

下面看一下输出

下面看一下线程优先级的设置

这里,iOS 80以后 threadPriority 已经被废弃了,用 qualityOfService 替换,这个是一个枚举,在线程start以后,就变为只读属性了。

使用示例

主线程名字默认为 main ,子线程如果不指定就为空。

使用示例

callStackReturnAddresses 线程的调用都会有函数的调用函数的调用就会有栈返回地址的记录,在这里返回的是函 数调用返回的虚拟地址,说白了就是在该线程中函数调用的虚拟地址的数组。

使用示例

同上面的方法一样,只不过返回的是该线程调用函数的名字数字。

使用示例

isMainThread 用来判断该线程是否是主线程,而 mainThread 用来获取当前的主线程。

使用示例

对象方法创建

下面看一下线程的初始化

类方法创建

下面就是使用示例

下面是输出

隐式创建

下面就是线程的状态控制

isExecuting 判断线程是否正在执行, isFinished 判断线程是否已经结束, isCancelled 判断线程是否撤销。

这个是线程的入口函数。

在程序运行过程中,如果存在多线程,那么各个线程读写资源就会存在先后、同时读写资源的 *** 作,因为是在不同线程,CPU调度过程中我们无法保证哪个线程会先读写资源,哪个线程后读写资源。因此为了防止数据读写混乱和错误的发生,我们要将线程在读写数据时加锁,这样就能保证 *** 作同一个数据对象的线程只有一个,当这个线程执行完成之后解锁。

常用的锁有下面几种

下面就是一个卖票的示例,用来说明互斥锁的作用

下面看一下输出

首先看一下API

下面我们换成NSLock看一下

接着看一下输出

NSConditionLock 用于需要根据一定条件满足后进行 加锁/解锁

首先看下API

下面就看一下适用场景

此锁可以在同一线程中多次被使用,但要保证加锁与解锁使用平衡,多用于递归函数,防止死锁。

首先看下API文档

下面看这个示例,其实就是递归使用这个锁

看一下输出

前面四种都是互斥锁,这里和自旋锁有什么区别和联系呢?

共同点

不同点

①、对于你能写这么长的问题描述,说明你很认真。
②、你的目的性较强,但是你也想有更加明确的目标,我可以给你讲一下怎么自己去寻找目标和路线以及怎样学习。
③、计算机专业领域一共有几个大方向,十几个分支方向,而每个分支方向又有几十个小方向,每一个方向的深入学习与熟练到一定火候都不是一朝一夕,互相之间也不是完全没联系的,但是你现在就应该选择一个大方向并在其中的一个小方向内深入(为什么要这么早就选择具体的分支方向?后面说)。
④、这里列出计算机的几个大方向(非编程开发类的我就不说了):
基本方向:
1、单片机、嵌入式方向
2、网络编程:涉及到服务器程序、客户端开发、脚本设计等。
3、系统编程:基础API开发、桌面开发、系统程序开发、服务程序
4、图形学:3D、2D、图像识别、人脸识别
5、音频:语音识别、音频解码、音频软件
6、编译原理:编译器设计、脚本解释器、虚拟机、非自然语言翻译系统
7、应用层开发:利用高层语言去开发表层应用
8、安全:反工程、病毒、反病毒、木马、反木马、软件破解、软件加壳
附加方向:
8、人工智能:遗传算法、神经网络、灰色系统等等
9、游戏设计:各种游戏引擎设计以及业务逻辑设计等
⑤、基本方向是你一定要选的,附加方向只是基于基本方向的一些锦上添花,但是不管你怎么选,最开始某些东西一定要深入而不是只是懂就够(当然你对自己要求似乎不会很低),我把这个列出来:

数据结构:下面其他理论的基础。
*** 作系统原理:理解 *** 作系统的架构和细节,你才能对以后关于多线程、文件管理、内存管理、指令优先级等有一个正确理解和运用。
编译原理:能够升华你对计算机编程语言的理解,对以后出现的各种编译、解释、兼容、移植、优化、并发与并行算法等有一个深入理解。
数据库系统原理:这个是进入公司都要会的,也是大型软件开发的基础。
软件工程:这个是你能够在经验不足还能保证大项目正常完成的理论基础。
网络技术:这个是必须学的,因为目前几乎没有一款装几率很高的软件或者平台跟网络无关。
数学的话,主要是:离散数学、线性代数、高等数学、计算机图形学、概率论
以上几个基础就是你成为一个融汇各个主要分支牛人必须学的(当然不是指理论,而是理论+实践编码能力)

⑥以上都是大的基础,要一一攻破并深入学习,虽然网络时代计算机专业知识爆炸式的增长,但是以上几个基础掌握后,会发现,以后的什么新的理论和技术都是基于这些大基础,你就很容易理解了。
⑦我为什么开头不讲你要具体学什么怎么顺序学呢?因为那些技术你要掌握的话,根本可以自己解决,但是如果你由于兴趣,沉迷于一些自己可见的小范围技术的话,那么毕业后虽然也能找到不错的工作,薪水也可能高,但是不能成为一个大牛。
现在才开始讲学习顺序,虽然你说不要推荐书,不过我还是要用书来做顺序。
C语言是可以写很多核心和高级的东西,而不只是小东西,但是从你代码来看,居然用到了 goto,我不是说你那些程序用到GOTO有什么不好,而是一定要避免用GOTO,goto是错误之源,如果你有什么内容非要用到goto才能写到,说明你的编码技巧还有不少提高空间。
你的学习顺序应该是:
C:做一个超级马里奥出来,并能够读取文本脚本来更新关卡。
C++:写一个2D图形引擎,封装掉细节,实现面向对象设计和可复用设计,并且用到《设计模式》中提到的一些设计模式,这样才能算对C++有一个很好的掌握。
MFC:MFC技术虽然近期已经冷下来了,但是你能熟练掌握它,才能证明你的C++OO技术够纯熟,严格证明你掌握了MFC很简单,你只要用MFC做出一个杀毒引擎就差不多了。推荐的书有《深入浅出MFC》。
《Windows程序设计》:和MFC不同的是,用的是windows核心SDK,也就是API,这本书学完后,你才能从 *** 作系统层面上算掌握了win32 平台下的机理(其实win64和win32大部分机理类似)。
C#:C#里集合了当代和前沿计算机科学里最先进的一些语法(虽然执行效率一直被人质疑),但是你学完C#并深入后,至少能够算是对计算机语言有一个更加深刻的理解了。如何证明你C#学的不错了?也很简单,再次写一个随便什么游戏,比如俄罗斯方块。如果更加证明自己呢?用它写一个P2P网络对战游戏。
(如果你注意的话,会发现我说的学习顺序都是沿着语言和某些技术的,为什么呢?因为这些语言和技术涉及到特定的领域技术和计算机理论思想,比如学完了C#的话,就不单指学完了C#,而是把多种语言范式都学习了一遍,以及现代的程序开发思维(因为里面用到了很多让你一劳永逸的技术))
以上5个步骤都是基础大步骤,要解决的话要没1-2年应该不够。
与此同时,要尽快选出文中你感兴趣的方向作为3-5年的长期方向,不要担心过早选择分支方向会有什么损失,因为计算机很多分支是相通的,只有你把分支方向深入进去,才能真正理解很多理论的实践意义。并且一旦你在某个分支领域形成了较强的优势(比如,到公司里只有你这方面最强),那么你就是稀缺人才。
关于大方向的步骤就不说了,你主要就是要把我说的这几个基础步骤先解决,同时平时要注重大方向理论结合实际去编码和开发。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/13012980.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存