全志H616学习笔记

全志H616

ARM Cortex-A53四核  --64 位 1.5GHz


为什么学 :


学习目标 -- Linux 系统  平台 -- ARM 架构

其实是  -- 运行在arm板上的Linux系统

蜂巢快递柜,配送机器人,这些应用场景用C51,STM32单片机无法实现
第三方介入库的局限性,比如刷脸支付和公交车收费设备需要集成支付宝SDK,提供的libalipay.so
是Linux的库,设备必须跑Linux系统
图像识别,音频,视频等领域的技术支撑也无法脱离Linux系统
人工智能型设备通常需要更好的系统和更高的算力,所以Linux也是必不可少
能跑Linux的一般为 X86,ARM,MIPS,PowerPC等架构,而ARM市场占有率最大
>>掌握 linux - arm 的技术栈

学什么:

这个领域的程序员一般分三个方向:
应用开发,通过跟产品业务相关,比如智能家居中控板,可以是C++QT, 可以是C GTK, 也可以是
Android页面,也可以是基于串口屏的UI交互,
后台数据交互和系统交互都是基于Linux系统的,初级工程师以这个方向入行居多,也容易上手


系统开发,主要任务是为硬件工程师设计的产品板操作系统,比如uboot,Linux内核,文件系统
等,一般为中高级嵌入式工程师,新手如果以这个方向入行,压力相对更大

 

-----------------------------------------------------

特性

CPU 全志H616四核64位1.5GHz高性能Cortex-A53处理器
GPU MaliG31MP2 SupportsOpenGLES1.0/2.0/3.2、OpenCL2.0
运行内存 1GBDDR3(与GPU共享)
存储 TF卡插槽_课程配套硬件16G,测试128G可支持、2MBSPIFlash
WIFI+蓝牙 AW859A芯片、支持IEEE802.11a/b/g/n/ac、BT5.0
视频输出 MicroHDMI20a
电源 USBTypeC接口输入
外设 带有I2Cx1、SPIx1、UARTx1以及多个GPIO口
电源指示灯和状态指示灯


-----------------------------------------

orangepi 的登录


香橙派默认账号密码

账号 orangepi   密码  orangepi
账号 root    密码  orangepi

密码修改指令:


sudo passwd orangepi

sudo reboot  -- 重启


网络配置:

 查看附近wifi
//n - net m-manager  client
nmcli dev wifi
q退出

命令接入网络

nmcli dev wifi connect CU_a2ry password c5m66yaa

//CU_a2ry --wifi名
 c5m66yaa -- 密码

查看IP地址

ip addr show wlan0
                  也可以使用ifconfig
=================================

SSH 登录:


//SSH密码 : Mx200306


vimdiff file1 file2  -- 比对两个文件区别
qall -- 全部退出



serial -- 串口

SSH登录优势-- 方便文件交互 -- 和window的上传,下载


 

wiringPi外设SDK安装

git clone https://github.com/orangepi-xunlong/wiringOP //下载源码
cd wiringOP //进入文件夹
sudo ./build clean //清除编译信息
sudo ./build //编译
通过windows浏览器打开https://github.com/orangepi-xunlong/wiringOP
下载压缩包
把压缩包通过xterm传到开发板
解压 unzip xxx.zip
cd xxx
sudo ./build

验证指令: gpio readall

---------------------------------------------------


case: 实现蜂鸣器的叮叮响

创建shell来简化编译代码

gcc - 编译需要链接到下面接口

-lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt

 我们可以创建 build.sh -这样的shell 命令,代替我们要输入的编译 :

gcc blink.c -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt


  注意这个时候还不能运行,  需要chmod +x build.sh 给这个shell加上运行权限

wiringpi  生成的可执行文件 a.out 需要我们使用 管理员身份去运行 -- sudo  ./a.out

1 #include <stdio.h>2 #include <wiringPi.h>3 #include<unistd.h>45 #define BEEP 0 //设置针脚0为蜂鸣器额控制引脚67 int main (void)8 {9     wiringPiSetup(); //初始化wiwingPi库10     pinMode(BEEP,OUTPUT);   //设置IO口的输入输出,配置为输出11     while(1){12         digitalWrite(BEEP,HIGH);//13         sleep(1);14         digitalWrite(BEEP,LOW);//设置IO为低电平有效 -- 蜂鸣器响15         sleep(1);16     }1718     return 0;19 }


====================


vim 批量缩进

set tabstop = 4  设定tab的宽度为4个字符
set shiftwidth   设定自动缩进为 4个字符
set expandtab  用space 代替tab输入
set noexpandtab 不 用space 代替tab输入

vim 格式化代码快捷键  -- gg=G

 参数形式的shell:


gcc $1 -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt

$0 -- 第0个参数

所有现在就可以使用build去编译其他文件: 比如 ./build test.c


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java混淆的公司有哪些

一些提供 Java 混淆服务的公司包括&#xff1a; PreEmptive Solutions&#xff1a;PreEmptive Solutions 提供了一系列用于保护 Java 和 .NET 应用程序的工具&#xff0c;包括混淆、代码压缩、加密和漏洞检测等功能。 DexGuard&#xff1a;DexGuard 是 Guardsquare 公司推出的…

【JavaWeb】异步请求——AJAX

目录 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;优点传统Web与Ajax的差异Ajax工作流程Ajax 经典应用场景XMLHttpRequest常用方法事件常用属性 ajax: GET请求和POST请求的区别 传统Ajax实现传统方式实现Ajax的不足 $.ajax()语法常用属性参数常用函数参数 Aja…

第十二章元数据管理10分

Q&#xff1a;元数据是数据资产目录 A&#xff1a;错&#xff0c;资源目录。【元数据管理原则&#xff1a;应规尽规&#xff0c;应收尽收】 12.1 引言 元数据最常见的定义是“关于数据的数据”。这个定义非常简单&#xff0c;但也容易引起误解。可以归类为元数据的信息范围很…

golang 迷宫回溯算法(递归)

// Author sunwenbo // 2024/4/14 20:13 package mainimport "fmt"// 编程一个函数&#xff0c;完成老鼠找出路 // myMap *[8][7]int 地图&#xff0c;保证是同一个地图&#xff0c;因此是引用类型 // i,j表示对地图的哪个点进行测试 func SetWay(myMap *[8][7]int, …

网络基础-基于TCP协议的Socket通讯

一、Socket通讯基于TCP协议流程图 UDP 的 Socket 编程相对简单些不在介绍。 二、 服务端程序启动 服务端程序要先跑起来&#xff0c;然后等待客户端的连接和数据。 服务端程序首先调用 socket() 函数&#xff0c;创建网络协议为 IPv4&#xff0c;以及传输协议为 TCP 的…

基于XML配置bean(二)

文章目录 1.工厂中获取bean1.静态工厂1.MyStaticFactory.java2.beans.xml3.测试 2.实例工厂1.MyInstanceFactory.java2.beans.xml3.测试 3.FactoryBean&#xff08;重点&#xff09;1.MyFactoryBean.java2.beans.xml3.测试 2.bean配置信息重用继承抽象bean1.beans.xml2.测试 3.…

HarmonyOS实战开发-如何实现一个简单的健康生活应用

功能概述 成就页面展示用户可以获取的所有勋章&#xff0c;当用户满足一定的条件时&#xff0c;将点亮本页面对应的勋章&#xff0c;没有得到的成就勋章处于熄灭状态。共有六种勋章&#xff0c;当用户连续完成任务打卡3天、7天、30天、50天、73天、99天时&#xff0c;可以获得…

SpringBoot框架——8.MybatisPlus常见用法(常用注解+内置方法+分页查询)

1.MybatisPlus常用注解&#xff1a; 1.1 当数据库、表名和字段名和实体类完全一致时无需加注解&#xff0c;不一致时&#xff1a; TableName指定库名 TableId指定表名 TableField指定字段名 1.2 自增主键&#xff1a; TableId(typeIdType.AUTO) private Long id; 1.3 实体类中属…

2000-2022年各省人力资本水平数据(含原始数据+计算过程+计算结果)(无缺失)

2000-2022年各省人力资本水平数据&#xff08;含原始数据计算过程计算结果&#xff09; 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;国家统计局 3、指标&#xff1a;普通高等学校在校学生数(万人)、年末常住人口&#xff08;万人&#xff09;、人力资本水平 4、范…

CTFshow-PWN-前置基础(pwn20)

提交ctfshow{【.got表与.got.plt是否可写(可写为1&#xff0c;不可写为0)】,【.got的地址】,【.got.plt的地址】 前置基础知识&#xff1a; .got 和 .got.plt 是 ELF&#xff08;Executable and Linkable Format&#xff0c;可执行和可链接格式&#xff09;二进制文件中的两个…

(四)qt中使用ffmpeg播放视频,可暂停恢复

一、在qt中添加ffmpeg库及头文件 INCLUDEPATH /usr/local/ffmpeg/include LIBS -L/usr/local/lib -lavutil -lavcodec -lavformat -lswscale 二、详细代码 FFempegVideoDecode 视频解码类&#xff08;放入线程中&#xff09; ffmpegvideodecode.h #ifndef FFMPEGVIDEODE…

Qt | 自定义事件第三节

Qt | 事件第一节Qt | 事件第二节书接上回 六、自定义事件与事件的发送 1、发送事件由以下两个函数完成 static void QCoreApplication::postEvent (QObject* receiver, QEvent* event, int priority=Qt::NormalEventPriority);

RHCE作业二

一.配置server主机要求如下&#xff1a; 1.server主机的主机名称为 ntp_server.example.com 2.server主机的IP为&#xff1a; 172.25.254.100 3.server主机的时间为1984-11-11 11&#xff1a;11&#xff1a;11 4.配置server主机的时间同步服务要求可以被所有人使用 二.设定cli…

C++高级特性:可变长模板参数和折叠表达式(八)

1、可变长参数模板 可变长参数是C类模板编程中非常重要的一个东西&#xff0c;也是C11引入的新特性&#xff0c;通过使用…来表示参数长度不固定 可以通过sizeof…(args)获取传入参数的个数数量 &&表示万能引用&#xff0c;需要注意的是如果不使用万能引用&#xff0…

JVM基础面试题第一篇

目录 内存区域面试与分析 1.运行时数据区是什么 2.Java虚拟机栈的作用 3.本地方法栈的作用 4.堆的作用 5.方法区作用 6.运行时常量池的作用 7.直接内存是什么 8.内存溢出和内存泄漏的区别 9.栈溢出的原因 10.方法区溢出的原因 垃圾回收器与内存分配策略-面试与分析 …

LeetCode 49.字母异位词分组

目录 题目描述 方法一 思路&#xff1a; 代码&#xff1a; 题目描述 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", &qu…

Http 请求偶发400错误

1. 背景 生产环境偶发400请求错误&#xff0c;发生概率万分之一&#xff0c;异常信息如下&#xff1a; 1&#xff09; 从异常信息可以看到&#xff0c;skywalking的sw8 header解析失效导致异常信息。 2&#xff09; 0x0d0x0a 作为回车换行符号&#xff0c;没有被正确处理&#…

OpenGL:图元

OpenGL的图元 点 GL_POINTS: 将顶点绘制成单个的点 线 GL_LINES:将顶点用于创建线段,2个点成为一条单独的线段。如果顶点个数是奇数,则忽略最后一个。 顶点:v0, v1, v2, v3, … , vn,线段:v0-v1, v2-v3, v4-v5, … , vn-1 - vn GL_LINE_STRIP:将顶点用于创建线段,…

谈谈Python中的分布式计算和大数据处理

谈谈Python中的分布式计算和大数据处理 Python作为一种通用、解释型的高级编程语言&#xff0c;因其简洁易读、强大的库支持和广泛的应用领域&#xff0c;近年来在分布式计算和大数据处理领域也获得了显著的关注和应用。 分布式计算是一种计算方法&#xff0c;它将大型问题划…

学习笔记(4月18日)vector底层模拟实现(1)

1.迭代器 vector实际上是由迭代器进行维护的&#xff0c;关于迭代器是什么&#xff0c;为什么要叫这个名字&#xff0c;后面的学习会逐渐了解&#xff0c;现在先将迭代器是作为指针即可。 vector底层有三个迭代器&#xff0c;用来起到容量、数组头、元素个数的作用。 同时为…