Raspberry Pi

嵌入式编码规范,收藏细读!

夙愿已清 提交于 2021-01-28 22:11:00
作为程序开发者,避免不了阅读别人代码,那么就会涉及到到一门语言的编程规范。规范虽然不是语言本身的硬性要求,但是已经是每一个语言使用者约定俗成的一个规范。 按照编程规范编写的代码,至少在代码阅读时,给人一种愉悦的心情,特别是强迫症患者。另一方面,统一的编程风格,可以减少编写错误,利于后期维护。 因为最近又开始进行纯C语言的开发,并且是基于SDK的开发,所以添加的每一行代码都应该与原来风格保持一致,不能因为一颗老鼠屎坏了一锅汤。一个良好的编程规范也可以看出编程人员的细心程度与代码质量。 之前待过的两家公司,也都有各自总结的编程规范,但都不约而同的一致,适用本公司的软件开发。这几天有幸可以参阅华为技术有限公司的C语言编程规范,相比之下,写的更加详细。 至少接触到了,在这个编程规范中体现了,并且还扩充了很多,我觉得有必要归纳总结,一遍日后查阅。先是学习规范,然后再积累规范,最后才是依规范编写。 1、清晰第一 清晰性是易于维护、易于重构的程序必需具备的特征。代码首先是给人读的,好的代码应当可以像文章一样发声朗诵出来。 2.、简洁为美 简洁就是易于理解并且易于实现。代码越长越难以看懂,也就越容易在修改时引入错误。写的代码越多,意味着出错的地方越多,也就意味着代码的可靠性越低。 因此,我们提倡大家通过编写简洁明了的代码来提升代码可靠性。废弃的代码(没有被调用的函数和全局变量)要及时清除

关于MDK使用的一些技巧~

≡放荡痞女 提交于 2021-01-28 02:31:28
开发过程中,常常会参考一些例程,有些时候,这些例程使用 MDK打开就能使用,而有些时候,就不是那么顺利,比如可能需要你安装一些 Pack或者兼容包。 对于这些安装包,鱼鹰之前介绍了可以使用 IDM加快下载速度(《 推荐一个下载神器(官网资料下载必备) 》),而对于一些常见的安装包,比如 keil、pack、兼容包等,我们也可以不去官网下载,而是直接在一些国内论坛下载,比如安富莱,这样你的下载速度会快很多。 安装完之后,一般需要安装驱动,而这些驱动其实在安装目录下就已经存在了,比如常见的 ST-LINK,J-LINK等驱动: 在 stlink文件夹中,除了驱动外,还有升级软件,如果需要升级你的固件,那么直接使用它就可以了(不过可能不是最新的)。 安装方法也很简单,通过设备管理器,找到上面的对应文件夹即可开始安装: 所以对于新手很难搭建的开发环境在老手手里很快就完成了: MDK 软件安装 -> 驱动安装 -> Pack 安装 ->管理员启动MDK+ PJ(2032) 一气呵成。 鱼鹰早期也写过一篇关于如何使用KEIL同时开发 51 和 32 的笔记,感兴趣的话,可以看看《 如何让 KEIL 同时开发 51 单片机 和 STM32 单片机? 》 有时候我们需要查看一些数据手册或参考手册,比如某个引脚对应了什么功能,那么我们可以通过MDK界面快速打开 一般而言,我们在安装对应的

树莓派出微控制器了!Raspberry Pi Pico 只需 4 美元

倖福魔咒の 提交于 2021-01-28 02:31:02
整理 | 郑丽媛 来源 | CSDN(ID:CSDNnews) 昨天,树莓派搞了个大动作:推出了首款微控制器开发板 Raspberry Pi Pico!该开发板基于树莓派开发的全新芯片——RP2040,并且作为双核 Arm Cortex-M0+ 的它只需 4 美元(人民币约 26 元),这是什么神仙板子? 典型的树莓派存在缺陷 迄今为止,树莓派已售出约 3700 万台,它能经久不衰得益于其连接软硬件方面的卓越能力,开发爱好者们可以通过运行在树莓派上的软件去读取传感器、执行计算和驱动执行器等等。 但与此同时,Raspberry Pi Trading 的首席运营官 James Adams 也指出,原本的树莓派存在一些缺陷: 最低功率模式下,Raspberry Pi Zero 也要消耗 100 毫瓦的电量; 树莓派本身不支持模拟输入; 树莓派虽然可以运行“裸机”软件,但是在 Linux 等通用操作系统下运行的软件并不适合对单个 I/O 引脚进行低延迟控制。 因此,现实中许多业余爱好者与工业应用程序都将树莓派与微控制器相结合,由树莓派负责繁重的计算、网络访问和存储,微控制器来处理模拟输入和低延迟I/O,有时还提供极低功耗的待机模式。 树莓派官方也一直想制作出属于自己的微控制器级产品,最终顿悟:想做出自己真正想要的产品,首先得学会自制芯片! RP2040 芯片 RP2040

微软发布了免费的文件恢复工具!

寵の児 提交于 2021-01-27 11:22:34
误删文件这事相信大家都碰到过,比如不小心误删了一个重要的文件,一不留神就把自己的硬盘清空了,或者是面对已经被误删的文件手足无措......以前碰到这种情况,有实力的程序员们就靠实力恢复误删的文件,像猿妹这样没实力的,网上购买个小工具也可以帮我恢复,就是费钱。 现在好了,最近微软在 Windows 10 应用商店中上架了一款免费的数据删除恢复工具 Windows File Recovery,猿妹再也不用担心误删文件了。 Windows File Recovery基于命令行程序设计,大小仅有8.26MB,所有Windows 10用户均可免费下载使用。 无论是照片、文档、视频还是其他,Windows File Recovery都可以帮你恢复,而且它还支持机械硬盘、固态硬盘、U盘、SD卡等多种硬件类型,遗憾的是,不支持网络驱动器文件恢复。 下面还是一起来看看用法吧: 嵌入式专栏 1 下载安装 首先,通过下载链接打开“Windows File Recovery”的下载界面,点击“获取”按钮安装。(下载地址:https://www.microsoft.com/zh-cn/p/windows-file-recovery/9n26s50ln705?activetab=pivot:overviewtab) 这里需要提醒大家的是,安装Windows File Recovery操作系统要求Windows

如何在OrangePi Zero2开发板上连接3.2寸树莓派SPI LCD显示屏

心不动则不痛 提交于 2021-01-21 16:30:34
香橙派Zero2开发板采用全志H616 四核 64位处理器,拥有512MB/1GB 内存可选,集成千兆以太网卡、蓝牙5.0+双频WiFi、Micro-HDMI输出、USB2.0、13pin、26pin扩展功能口等端口,适配了安卓10、Ubuntu和Debian等操作系统。 下面将给大家介绍通过26pin扩展口连接树莓派3.2寸SPI LCD显示屏的操作。 1) 测试的 LCD 显示屏详情页链接如下 2) LCD 显示屏和开发板接线方式如下所示 3) 将 LCD 显示屏接到开发板后,再使用下面的命令加载 fbtft_device 内核模块 4) fbtft_device 内核模块加载时 dmesg 命令正确的输出 log 如下所示,而且由 log 可 以知道 LCD 屏幕使用的 framebuffer 为 fb1 5) 然后使用下面的命令就可以在 LCD 屏幕上显示 Orange Pi 的 logo 图片 6) 还可以将 tty1 的输出映射到 LCD 屏幕的 fb 设备——fb1,映射完后,HDMI 就不 会再有图像输出了 如果要切换回 HDMI 显示,请使用下面的命令 下面是运行 htop 命令的输出 7) 由于默认的终端字体太大,导致屏幕无法显示太多的内容,可以通过下面的方法 来缩小终端的字体 a. 首先运行 dpkg-reconfigure console-setup) b.

树莓派4 安装 CentOS8X64 位系统

这一生的挚爱 提交于 2021-01-19 09:18:20
树莓派4 安装 CentOS8X64 位系统 01 下载安装包及烧录系统 参考 http://reallyappreciate.com/raspberry-pi-4-8gb-model-with-centos-8/ 下载centos8 树莓派镜像 从网址:https://people.centos.org/pgreco/ 下载 。 wget https://people.centos.org/pgreco/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw.xz 解压为 CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw 下载 烧录工具 wget https://sourceforge.net/projects/win32diskimager/files/Archive/Win32DiskImager-1.0.0-binary.zip 烧录系统到tf卡上 系统启动及链接 系统烧录后,不需要做任何设置,加电、连接网线即可ssh登录。 把tf卡安装到树莓派4上面加电, 连接网线 。

红灯区:DevOps 建设的思考和实践

旧时模样 提交于 2021-01-17 06:07:49
点击关注“ 有赞coder ” 获取更多技术干货哦~ 作者:费解 团队:效能改进 背景 众所周知,在丰田精益生产中,核心观念包含对人的尊重、消除浪费、持续改善,只有这样,企业才能保持良性运转,竞争力才会提升。而具体的浪费场景,被总结为「制造过剩、等待、搬运、库存、加工、额外动作、次品」七种,后来又增加了「管理」的浪费。 笔者所在效能改进团队,一直致力于精益的实践,从降本增效的角度,来提升有赞软件研发的效能,以应对这个充满不确定性时代的变化的冲击。而彼时的软件研发,从过程管理的角度,已将「项目制」普及到团队之中并持续发挥作用,但从工程实践的角度,虽然各部门都有一些基础设施,但仅为本部门服务,整体处于萌芽阶段,需要有一条主线将各独立的孤岛串接起来,发挥协同的价值。 一、工程实践的现状 1.1 技术债 有赞作为一家初创公司,首要任务是在市场竞争中活下来,所以在技术沉淀方面,于某段时期内处于被动局面,由业务裹挟着往前狂奔,是可以理解的,而且是必须经历的。但可以预见的是,长此以往,就会积累大量的技术债,而且会随着系统复杂度的上升,技术债所带来的研发成本会快速增加,直到它变成一堆无人敢碰的遗留功能。 从精益浪费的视角看,处理技术债就是一种「额外动作」,它是每次研发中一项绕不开的工作,但除了耗费大量人力物力和时间之外,并不产生任何价值。我们亟需掌握目前有多少技术债、风险如何、处理成本如何

科技爱好者周刊(第 141 期):封闭系统的胜利

瘦欲@ 提交于 2021-01-16 12:49:23
这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: ruanyf/weekly ),欢迎提交 issue,投稿或推荐科技内容。 周刊讨论区的帖子 《谁在招人?》 ,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。 封面图 2020年7月21日,SpaceX 公司的 Falcon 9 重型火箭即将发射。NEOWISE 彗星就在它的上方,划过浩瀚宇宙。很多网站评选这张照片为太空探索年度照片。( via ) 本周话题:封闭系统的胜利 去年的一件大事,苹果公司发布 M1 芯片。 它的表现好得惊人,比原先英特尔的芯片更快、更省电、还更便宜。 为什么 M1 芯片的表现这么好? 一个 原因 是,它其实不能算作 CPU,而是一个单片系统 (System on a Chip,简称 SoC),里面集成了中央处理器 CPU、图形处理器 GPU、机器学习芯片 NPU、安全芯片等等。 当代芯片的制造技术已经发展到不可思议的程度,海量的晶体管可以做进一块指甲盖大小的硅片。以前,不同的电路需要由不同的芯片提供,现在可以集成为一块芯片。 正是由于这么多组件做在一起,苹果才有办法,最大限度地优化电路,提高协同能力,节省电力。再加上,操作系统也是自家的,可以配合着修改底层,所以性能才能提高这么多。 我问大家一个问题,如果 M1 大获成功,其他公司会怎么反应? 答案很简单,别的公司不得不跟进

苹果 M1 芯片预示着 RISC-V 完全替代 ARM?

雨燕双飞 提交于 2021-01-16 12:15:02
来源 | CSDN(ID:CSDNnews) 作者 | Erik Engheim 已获作者翻译授权 译者 | 弯月 责编 | 张文 编者按:M1 芯片性能强劲的背后主要源自两个因素:第一,M1芯片使用了大量的解码器和乱序执行;第二,就是异构计算。本文着重讲解第二点。 在大家了解了 M1 芯片表现之后,你肯定想一探究竟其底层核心是什么,本文将从异构计算开始讲起。 苹果非常热衷于添加多个专用硬件单元的策略,在本文中,我将其称为协处理器(coprocessor): 图形处理单元(GPU),用于图形处理以及其他需要并行处理大量数据的任务(即同时对多个元素执行相同的操作)。 神经引擎,机器学习的专用硬件。 图像处理的数字信号处理硬件。 硬件中的视频编码。 苹果没有在解决方案中添加更多的通用处理器,而是添加了更多的协处理器。你可以称之为加速器。这种趋势并不是新出现的,我从 1985 年开始使用的老式 Amiga 1000 就使用协处理器来加快音频和图形处理的速度。现代 GPU 本质上就是协处理器。Google 的 Tensor 处理单元也是一种用于机器学习的协处理器。 图:Google TPU是专用集成电路(ASIC),我们称之为协处理器。 01 什么是协处理器? 与 CPU 不同,协处理器不能单独存在。只使用协处理器无法造出计算机。协处理器作为专用处理器,可以很好地完成某些特定的任务

智能家居语音控制及人脸识别报告设计(树莓派)

走远了吗. 提交于 2021-01-15 12:58:02
智能家居语音控制及人脸识别 目录 摘要................................................................................................................................. 3 1 设计背景...................................................................................................................... 4 2 项目分析...................................................................................................................... 4 2.1 硬件模块............................................................................................................ 4 2.1.1 硬件清单..................................................................