牛客编程初学者入门训练——BC91 水仙花数 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。
牛客编程初学者入门训练——BC76 [NOIP2008]ISBN号码 ISBN码包括9位数字 1位识别码和3位分隔符 其规定格式如“x-xxx-xxxxx-x” “-”是分隔符,最后一位是识别码识别码的计算方法如下:用所得的结果mod 11 所得的余数即为识别码 如果余数为10,则识别码为大写字母X。编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。
牛客编程初学者入门训练——BC53 判断是元音还是辅音 KiKi开始学习英文字母,BoBo老师告诉他,有五个字母A(a), E(e), I(i), O(o),U(u)称为元音,其他所有字母称为辅音,请帮他编写程序判断输入的字母是元音(Vowel)还是辅音(Consonant)。
牛客编程初学者入门训练——BC17 缩短二进制 知识补充:d 以十进制形式输出带符号整数(正数不输出符号)o 以八进制形式输出无符号整数(不输出前缀O)x 以十六进制形式输出无符号整数(不输出前缀Ox)X 以十六进制形式输出无符号整数(不输出前缀OX)使用修饰符“#”控制前导显示:# 对c,s,d,u类无影响; 对o类, 在输出时加前缀0对x类,在输出时加前缀0x
牛客编程初学者入门训练——BC13 出生日期输入输出 输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。数据范围:年份满足1990≤y≤20151990≤y≤2015,月份满足1≤m≤121≤m≤12,日满足1≤d≤301≤d≤30
嵌入式面试——FreeRTOS篇(九) 内存管理 FreeRTOS内存管理介绍:在使用 FreeRTOS 创建任务、队列、信号量等对象的时,一般都提供了两种方法:• 动态方法创建:自动地从 FreeRTOS 管理的内存堆中申请创建对象所需的内存,并且在对象删除后,可将这块内存释放回FreeRTOS管理的内存堆。由FreeRTOS自动实现了malloc和free。• 静态方法创建:需用户提供各种内存空间,并且使用静态方式占用的内存空间一般固定下来了,即使任务、队列等被删除后,这些被占用的内存空间一般没有其他用途。
嵌入式面试——FreeRTOS篇(八) Tickless低功耗 低功耗介绍:很多应用场合对于功耗的要求很严格,比如可穿戴低功耗产品、物联网低功耗产品等;一般MCU都有相应的低功耗模式,裸机开发时可以使用MCU的低功耗模式。FreeRTOS也提供了一个叫Tickless的低功耗模式,方便带FreeRTOS操作系统的应用开发。区别:第一种是针对于裸机的;在裸机环境上是不涉及一些线程的保护。而FreeRTOS是存在线程的,所以FreeRTOS的Tickless为了防止某些操作或者其他任务打断是有线程保护的。
嵌入式面试——C语言和数据结构篇(二) 在C语言中,关键字static有三个明显的作用:1>在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2>在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3>在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
嵌入式面试——FreeRTOS篇(七) 软件定时器 定时器介绍答:定时器:从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可以自定义定时器周期。硬件定时器:芯片本身自带的定时器模块,硬件定时器的精度一般很高,每次在定时时间到达之后就会自动触发一个中断,用户在中断服务函数中处理信息。软件定时器:是指具有定时功能的软件,可设置定时周期,当指定时间到达后要调用回调函数(也称超时函数),用户在回调函数中处理信息。2、软件定时器优缺点优点硬件定时器数量有限,而软件定时器理论上只需有足够内存,就可以创建多个;使用简单、成本低。缺点。
嵌入式面试——FreeRTOS篇(六) 任务通知 1、任务通知介绍任务通知:用来通知任务的,任务控制块中的结构体成员变量ulNotifiedValue就是这个通知值。使用队列、信号量、事件标志组时都需要另外创建一个结构体,通过中间的结构体进行间接通信。使用任务通知时,任务结构体TCB中就包含了内部对象,可以直接接收别人发过来的“通知”。2、任务通知值的更新方式不覆盖接收任务的通知值。覆盖接收任务的通知值。更新接收任务通知值的一个或多个位。增加接收任务的通知值。
嵌入式面试——FreeRTOS篇(五) 事件标志组 事件标志位:用一个位,来表示事件是否发生。事件标志组是一组事件标志位的合集,可以简单的理解事件标志组,就是一个整数。事件标志组的特点它的每一个位表示一个事件(高8位不算)。每一位事件的含义,由用户自己决定,如:bit0表示按键是否按下,bit1表示是否接收到信息。这些位的值为1表示事件发生了,值为0表示事件未发生。任意任务或中断都可以读写这些位。可以等待某一位成立,或者等待多位同时成立。
嵌入式面试——FreeRTOS篇(三) 消息队列和队列集 本篇为:消息队列与队列集篇。消息队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递)。队列集:一个队列只允许任务间传递的消息为同一种数据类型,如果需要再任务间传递不同数据类型的消息时,那么就可以使用队列集!!!
嵌入式面试——FreeRTOS篇(二)列表和列表项 列表的特点:列表项间的地址非连续的,是人为的连接到一起的。列表项的数目是由后期添加或删除的个数决定的,随时可以改变。绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按照一定频率运行的任务。数组的特点:数组成员地址是连续的,数组在最初确定了成员数量后,后期将无法改变。注意:一般来说,绝对延时中的主体任务运行所需时间必须比绝对延时时间小。中任务的数量是不确定的,并且任务状态是会发生改变的,所以非常适用列表。判断阻塞时间是否到达,如果到达将从阻塞列表移除,添加到就绪列表。
嵌入式面试——FreeRTOS篇(一)FreeRTOS基础 嵌入式面试:FreeRTOS的任务调度方式什么是时间片FreeRTOS的任务状态任务动态创建和静态创建的区别什么是临界区保护动态创建优点静态创建优点中断执行机制什么是抢占优先级,什么是子优先级中断优先级配置方式
嵌入式面试——C语言和数据结构篇(一) 本人是新乡一个小小二本的物联网工程大四学生,之前面试江苏的一个嵌入式开发岗位时,被面试官狠狠滴拷打了,最后也是不出意外的挂掉了面试。我痛定思痛,在当天下午就开始复习专业知识和背面试题。我按照学习时的顺序编写和发布,所以以C语言和数据结构就作为本专栏的第一篇。