0%

一、概述
MT7688硬件自带两个SPI的CS,其中一个用于flash,可用就只有一个。在实际应用中可能会连接多个SPI设备,显然一个CS是不够用的。内核中虽然实现了SPI bitbang的master使用gpio模拟spi,但性能无法与cpu的spi控制器相比。本文目的在于使用GPIO扩展spi的CS,其他spi控制线共用。网上也有很多博文实现GPIO扩展SPI CS的,但实际操作中总会有些问题,本文方法亲测是可以的。

二、软件环境

  • linux发行版:ubuntu 14.04LTS
  • Openwrt版本:15.05.1
  • 硬件:MT7688A

三、配置过程

阅读全文 »

ubuntu高版本安装低版本gcc
试了网上的切换源或从源码下载,不成功。
最后成功安装的方法:

1
2
3
4
5
6
7
8
9
10
11
12
cd Desktop/
mkdir install_g++-4.8
cd install_g++-4.8/
sudo apt update
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/g++-4.8_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/cpp-4.8_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/libasan0_4.8.5-4ubuntu8_amd64.deb
sudo apt install ./gcc-4.8_4.8.5-4ubuntu8_amd64.deb ./gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb ./libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb ./cpp-4.8_4.8.5-4ubuntu8_amd64.deb ./libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb ./libasan0_4.8.5-4ubuntu8_amd64.deb ./g++-4.8_4.8.5-4ubuntu8_amd64.deb

假如我们的ubuntu下安装了多个版本,有时候,我们需要旧的gcc g++版本,这时,就涉及到版本的切换,我们首先对多个版本设置不同的优先级,使用工具如下:

<1> 可以通过如下命令查看当前安装的版本:

1
2
ll /usr/bin/gcc*
ll /usr/bin/g++*

<2> 安装gcc-4.8 和gcc-5:

1
2
sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
sudo apt install gcc-5 gcc-5--multilib g++-5 g++-5--multilib
阅读全文 »

1. 概述

以往总是通过串口打印log,但经常因资源限制,无法打印。最近接触到J-Link RTT Viewer,本文目的是记录下使用方法(只需要把J-Link安装目录下的源文件,添加到自己的工程就可以了)。
参考连接:【嵌入式小技巧】STM32 实现 SEGGER RTT 打印(超详细),根据博客自己操作了下。

2. 找到驱动文件

阅读全文 »

在终端执行sudo命令时,系统提示

is not in the sudoers file. This incident will be reported.

原因就是当前的用户没有加入到sudo的配置文件里

解决方法:

切换到root用户

1
su

编辑配置文件

1
vim /etc/sudoers

找到root ALL=(ALL) ALL, 在下面添加一行, xxx是用户名称

1
xxx ALL=(ALL) ALL

注意这个文件是只读的,因此需要使用:wq!强制保存,然后重新执行命令就OK了

(1)卸载旧版本gcc

1
sudo apt-get remove gcc

(2)添加软件源

1
sudo add-apt-repository ppa:ubuntu-toolchain-r/test

(3)更新

1
sudo apt-get update

(4)使用apt-cache policy gcc-9 获得gcc-9安装包

(5)安装指定版本gcc

1
2
3
sudo apt-get install aptitude

sudo aptitude install gcc-9=9.3.0-10ubuntu2

如果安装失败再使用sudo apt-get install gcc命令安装一次
(6)查看gcc版本

1
gcc -v

一.gpio查看命令

//查看引脚状态

1
cat /sys/kernel/debug/gpio 

//查看gpio引脚的复用情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cat /sys/kernel/debug/pinctrl/pinctrl/pinmux-pins

Pinmux settings per pin
Format: pin (name): mux_owner gpio_owner hog?
pin 0 (gpio0-0): wireless-wlan (GPIO UNCLAIMED) function wireless-wlan group wifi-wake-host
pin 1 (gpio0-1): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 2 (gpio0-2): (MUX UNCLAIMED) gpio0:2
pin 3 (gpio0-3): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 4 (gpio0-4): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 5 (gpio0-5): (MUX UNCLAIMED) gpio0:5
pin 6 (gpio0-6): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 7 (gpio0-7): (MUX UNCLAIMED) gpio0:7
pin 8 (gpio0-8): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 9 (gpio0-9): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 10 (gpio0-10): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 11 (gpio0-11): ff050000.i2c (GPIO UNCLAIMED) function i2c1 group i2c1-xfer
pin 12 (gpio0-12): ff050000.i2c (GPIO UNCLAIMED) function i2c1 group i2c1-xfer
pin 13 (gpio0-13): (MUX UNCLAIMED) (GPIO UNCLAIMED)

二.从用户层控制gpio

要从用户层控制gpio前提是这个引脚是gpio或者已经复用为gpio

阅读全文 »