每日收获——初体验

作为IT领域的初学者,本文分享了作者在研究生阶段决定转向IT行业的心路历程,并介绍了初次接触到的计算机基础知识,包括多核处理器的基本思想、接口的概念以及如何高效利用CPU等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日是研究生生活开始的第13天,决定往敲代码方向发展的时候,就代表着我要更加积极主动的去学习了,毕竟个人的专业背景和IT方向差的挺大。因此,开通了这个博客,第一次以这种方式,记录自己在学习上的心得,或许将来的其他如我一样的萌新,会翻到我的博客,那我对你也对现在的自己说一句加油咯~

第一次上课,老师就从比较高的层面上讲了,提到进程和线程,这对于只有一点C语言基础的我来说就是雾里看花,师兄推荐了两本书,《程序员的自我修养—链接、装载与库》以及《深入理解计算机系统第二版中文》。我先看了简短一点的第一本书,作者的水平很高的,语言深入浅出,在我的脑海里把以前对我而言很机械很晦涩的计算机系统的基础理论的大致轮廓构建了起来,最近几篇应该会写和这本书有关的读后感。

(但我这里毕竟是初学者,一开始这几篇水平该是低下海平面的,写出来作用只在于提炼一下所读,以及督促自己尽快入门。)

第一个接触的比较惊喜的概念是,多核处理器的基本思想。来源是当前CPU的频率很难有提高的空间。为了提高性能,就想到了使用多处理器的方法,但是这样是昂贵的,因此厂商将多个处理器“合并打包”,共享昂贵的缓存部件,只保留多个核心,这就是多核处理器的基本思想。

接口,是我以前很模糊的概念。我所理解的接口是这样的,计算机系统对各种操作的实现是通过一层一层的处理操作实现的,每一层都有不同的作用,但是层与层之间要进行通信,即传递命令等,那么一定是满足一定要求的指令才可以成功传递,即协议,这个协议就是借口。“接口是被精心设计过的,尽量保持稳定不变”,那么理论上每个层都可以被替换。以上是我现在对借口的认识。我常常听说的一个概念API,Application Programming Interface,就是应用程序编程借口,各种开发工具与应用程序都是使用这个接口的,emmm……还是很抽象,之后应用起来应该可以懂。

如何高效利用CPU。多道程序:一个程序不需要使用内存时,监控程序会给另一个正在等待CPU资源的程序分配CPU,但是这个调度策略很粗糙,因为程序是不分轻重缓急的。分时系统:系统运行一段时间后,会把CPU让出来,给其他程序使用,这对交互式任务是很重要的,但缺点是容易死机。

晚上组里聚餐……明天再更吧~


### 关于智能宠物喂食系统的毕业设计及相关实现方案 #### 系统概述 智能宠物喂食系统是一种利用现代电子技术、嵌入式技术和物联网技术来自动化管理宠物饮食的设备。这类系统通常由微控制器(如STM32或STC89C52)、传感器模块、执行机构以及通信接口组成,能够满足用户远程控制和自动化的喂养需求[^1]。 #### 系统架构与核心组件 以下是基于STM32的智能宠物喂食系统的主要组成部分及其功能描述: 1. **主控单元** 主控芯片选用高性能ARM Cortex-M系列处理器(如STM32F103),负责整个系统的逻辑运算和数据处理。它接收来自外部传感器的数据并驱动电机完成饲料投放动作[^1]。 2. **定时器模块** 定时器用于设定每日多次固定时间点进行自动投喂操作。用户可以通过配套手机应用程序设置具体的时间间隔或者周期性计划表[^2]。 3. **剩余粮食监测装置** 利用电阻式压力传感元件测量容器内部存储的食物重量变化情况;当低于预设阈值时触发警报提醒补充物料[^2]。 4. **无线通讯网络连接部分** 支持Wi-Fi/ZigBee/蓝牙等多种方式接入互联网平台以便实施远距离操控命令下达及状态查询服务[^1]。 5. **人机交互界面(HMI)** 提供LED显示屏显示当前参数配置详情以及按键开关调整选项等基本UI元素让用户轻松修改各项属性值[^2]。 6. **电源管理系统(PMU)** 设计合理的供电电路保障长时间稳定运行的同时兼顾节能降耗效果显著提升产品使用寿命[^1]。 #### 软件开发流程说明 针对上述硬件设施编写相应的固件程序主要涉及以下几个方面的工作内容: - 初始化外设资源初始化串口调试工具链环境准备阶段; - 编写中断服务例程响应各类事件请求比如按钮按下后的反馈机制或是超声波测距返回的距离数值计算过程等等 ; - 配合RTOS实时操作系统优化任务调度策略从而达到高效并发执行多个子线程的目的减少延迟现象发生概率提高用户体验满意度水平. 下面给出一段简单的伪代码表示如何启动步进马达完成定量分配颗粒状物质的动作模拟场景演示例子: ```c void dispenseFood(int amount){ int stepsPerRevolution = 200; //每转一圈所需脉冲数 float stepAngle = (float)(amount * STEPS_PER_GRAM)/stepsPerRevolution;//根据克重转换成角度增量 digitalWrite(STEPPER_DIR_PIN,HIGH); //指定旋转方向为正向前进模式 for(float i=0;i<stepAngle;i+=STEP_INCREMENT){ digitalWrite(STEPPER_STEP_PIN,HIGH); delayMicroseconds(DELAY_TIME); digitalWrite(STEPPER_STEP_PIN,LOW ); delayMicroseconds(DELAY_TIME); } } ``` #### 参考文献扩展阅读建议 对于希望深入研究本课题的同学来说可以考虑查阅以下几类书籍资料获取更多理论支撑和技术指导信息源: - 嵌入式Linux应用编程指南——学习如何构建更加复杂的控制系统框架基础之上增加额外的功能特性支持. - 物联网工程实践教程——了解当今主流IoT协议栈标准定义及其应用场景案例分享交流经验心得收获满满干货知识财富宝藏等待挖掘探索发现之旅开启时刻来临之际让我们一起踏上这段充满挑战而又乐趣无穷的学习旅程吧! ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值