树莓派开发

树莓派开发

树莓派刷机

工具和软件

  1. 工具:USB读卡器+SD卡。
  2. 软件:Win32DiskImager。

步骤

  1. 打开软件: Win32DiskImager
  2. 点击文件夹并找到(网上自己下载):[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jZO3cxYg-1635508485092)(C:\Users\86150\Desktop\截图\屏幕截图 2021-08-09 220617.jpg)]
  3. 点击write刷机。
  4. 拔下SD卡,插入树莓派中

树莓派登录

串口登录

设备破解
  1. 默认情况下,树莓派的串口是和蓝牙连接的。
  2. 要使用串口用来数据通信,必须断开蓝牙连接
断开蓝牙

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9g1QKmtr-1635508485094)(C:\Users\86150\Desktop\截图\屏幕截图 2021-08-09 221905.jpg)]

参考博文

启动树莓派
  1. 准备好上面的步骤之后,将SD卡插入树莓,接上电源启动。
  2. 右键我的的电脑(以win7为例,其它大同小异)->管理->设备管理器->端口(COM和LPT)** COM在Win系统里就是指的串口的端口。 如果没有这个,说明你的转换模块没有在运作,请检查对应驱动是否正确安装。 **
  3. 记下这里的端口号
  4. 远控软件新建一个连接,速度设置为115200,端口选择刚才的端口。
  5. 点击连接,等待终端出现文字,直到树莓派发出登录请求,到此成功。
  6. 默认账号:pi
    默认密码:raspberry

网络登录

网络配置
  1. 串口登录状态下:输入命令

    sudo nano (nano是文档编辑器)
    /etc/wpa_supplicant/wpa_supplicant.conf
    
  2. 在文件中添加无线网配置信息:

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=CN
    
    network={
            ssid="你的无线网名字"
            psk="密码"
            key_mgmt=WPA-PSK
    }
    
    network={
            ssid="你的其他无线网名字"
            psk="密码"
            key_mgmt=WPA-PSK
    }
    
    
  3. 连接WiFi,用指令ifconfig显示或设置网络设备,此时是未连接的状态。

  4. 重启树莓派后才会连接。

  5. 固定树莓派的IP地址

    1. 输入指令:sudo nano /etc/rc.local
    2. 进入后在最后一行添加:ifconfig wlan0 192.168.xx.xx
网络配置
  1. 输入指令:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ogNlYfN-1635508485096)(C:\Users\86150\Desktop\截图\屏幕截图 2021-08-09 231929.jpg)]
  2. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4vtrJHI-1635508485099)(C:\Users\86150\Desktop\截图\屏幕截图 2021-08-09 232118.jpg)]
  3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KcF8L8On-1635508485102)(C:\Users\86150\Desktop\截图\屏幕截图 2021-08-09 232146.jpg)]

图形登录

  1. 安装xrdp

    sudo apt-get insall xrdp
    

vim的安装

默认的源是国外的,apt-get 安装会失败,需更新成国内的源。

  1. 输入指令:

    sudo nano /etc/apt/sources.list
    
  2. 用#注释或直接删除原有的内容,新增下面内容:

    deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
    #deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
    
  3. 保存并退出。

  4. 更新软件列表

    sudo apt-get update
    
  5. 输入指令安装vim

    sudo apt-get insall vim
    
  6. 参考博文

window和树莓派文件共享

  1. 使用的软件是:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xSulWPY6-1635508485103)(C:\Users\86150\Desktop\截图\屏幕截图 2021-08-10 085459.jpg)]

  2. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RSHsX5z4-1635508485106)(C:\Users\86150\Desktop\截图\屏幕截图 2021-08-10 085650.jpg)]

Linux库

库的类型

程序函数库可分为3种类型:静态函数库(static libraries)、共享函数库(shared libraries)、动态加载函数库(dynamically loaded libraries);

静态函数库

概念

  1. 静态函数库,是在程序执行前就加入到目标程序中去了 (一般来说习惯用“.a”作为文件的后缀);

  2. 优点
    ①.静态库被打包到应用程序中加载速度快
    ②.发布程序无需提供静态库,因为已经在app中,移植方便

  3. 缺点

    ①.链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
    ②.更新、部署、发布麻烦。

静态库的制作

命名规则

静态库文件名的命名方式是“libxxx.a”,库名前加”lib”,后缀用”.a”,“xxx”为静态库名。

指令
  1. 先生成“.o“文件
gcc a.c b.c -c
  1. 将“.o”文件打包
    ar rcs 静态库的名字 原材料

    ar rcs libtest.a a.o b.o
    

    ar指令的参数

    参数

    必要参数

    • -d  删除备存文件中的成员文件。
    • -m  变更成员文件在备存文件中的次序。
    • -p  显示备存文件中的成员文件内容。
    • -q  将文件附加在备存文件末端。
    • -r  将文件插入备存文件中。
    • -t  显示备存文件中所包含的文件。
    • -x  自备存文件中取出成员文件。

    选项参数

    • a<成员文件>  将文件插入备存文件中指定的成员文件之后。
    • b<成员文件>  将文件插入备存文件中指定的成员文件之前。
    • c  建立备存文件。
    • f  为避免过长的文件名不兼容于其他系统的ar指令指令,因此可利用此参数,截掉要放入备存文件中过长的成员文件名称。
    • i<成员文件>  将文件插入备存文件中指定的成员文件之前。
    • o  保留备存文件中文件的日期。
    • s  若备存文件中包含了对象模式,可利用此参数建立备存文件的符号表。
    • S  不产生符号表。
    • u  只将日期较新文件插入备存文件中。
    • v  程序执行时显示详细的信息。
    • V  显示版本信息。
  2. 库的使用

    gcc test.c -I ./include -L./lib -lmycalc -o app

    -I(大写i):指定头文件的路径

    -L: 指定库的路径

    -l(小写L):指定库的名字(去掉lib和.a)

    -o:指定生成的最终应用程序的名字
    为什么要加-L呢?

    因为如果不指定库的路径,默认是在/usr/lib/目录下去找。加了-L优先在指定路径下找,如果找不到再去/usr/lib/下找;

动态函数库

概念

  1. 动态函数库同共享函数库是一个东西(在linux上叫共享对象库, 文件后缀是.so ,windows上叫动态加载函数库, 文件后缀是.dll),是在程序执行时(临时)由目标程序去调用;

  2. 优点
    ①.链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序可以共用,节省内存
    ②.程序升级简单,因为app里面没有库的源代码,升级之后只要库的名字不变,函数名以及参数不变,只是实现做了优化,就能加载成功。

  3. 缺点

    ①.加载速度比静态库慢
    ②.发布程序需要提供依赖的动态库

动态库制作

  1. 命名规则

    动态库的命名方式与静态库类似,前缀相同,为“lib”,后缀变为“.so”。所以为“libmytime.so”

  2. 制作步骤

    ①.将源文件生成.o,需要加一个参数fpic

    gcc a.c b.c -c -fpic
    

    -fipc:fPIC选项用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码。

    ②.将“.o”文件打包

    gcc -shared a.o b.o -o libxxx.so
    

    -share:生成 动态库

    也可以将上面两步合为一步

    gcc -shared -fpic a.c b.c -o libxxx.so
    

动态库在运行时需要配置环境变量

  1. 临时配置:在终端输入:

    export LD_LIBRARY_PATH="动态库的路径"
    

    可以写一个sh脚本,让它再其他终端下运行

    1. 永久配置:

      ②.系统级别:
      /etc/profile,配置完成之后,重启计算机或者source /etc/profile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值