自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 keil 5支持 LPC1114FBD48/302,1

1、下载Keil.LPC1100_DFP.1.4.0.pack2、设置

2020-10-15 10:52:28 21

原创 Android Studio解决Gradle下载缓慢的问题

原因简述Android Studio初次创建项目时,默认是从国外的google和jcenter站点下载所需要的文件,故下载速度较慢,有时甚至会超时。对于Gradle工具,我们可以手动下载并添加到.gradle文件夹中;对于Gradle的在线Sync,只需向配置文件添加阿里云提供的国内镜像就能有效解决。解决方法一、解决Download Gradle缓慢①打开Gradle Scripts下的gradle-wrapper.properties文件,查看当前项目所依赖的Gradle版本号②点击Grad

2020-10-15 00:08:20 68

原创 Android Studio 3.6.3 Logcat 状态栏输出出现中文乱码的问题

起因:今日集成极光IM发现有些报错,但输出日志一直乱码,看不清报的什么.后来通过下面这些方法就解决了.第一步:打开设置,将下面红色框框全部设置为UTF-8第二步:菜单栏>help>Edit Custom VM Options(没有的话会提示你创建),追加一行:-Dfile.encoding=UTF-8如下图所示:第三步:菜单栏>File>Invalidate and Restart最后重启完美解决!...

2020-10-12 04:14:19 11

原创 34、 RK3399 android驱动默认驱动加载节点权限问题

默认驱动加载的节点权限很低。在串口下最高权限测试打开节点是可以的但是在安卓的jni下的.so库打不开,需要 chmod 777 dev/name才可以

2020-10-11 19:16:14 19

原创 34、RK3399 Android Studio “nativeLibraryDirectories=[/data/app

ndroid Studio"nativeLibraryDirectories=[/data/app/com.lukouapp-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libxxxx.so" 问题原因:64位机器默认去查找arm64-v8a目录下是否有合适的64位库,如果没有则回去libs下查找32位的库,而fresco的draw-pipeline太完善了考虑了64位的机器所以他的arm64-v8a下有so库,对应的系统就

2020-10-11 18:37:18 31 1

原创 33、RK3399 配置android nfs

linux内核支持nfs挂载配置1、配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项Networking supportNetworking optionsTCP/IP networkingIP: kernel level autoconfiguration[] IP: DHCP support[] IP: BOOTP support2、配置开启nfs服务File systems —>Network File Sy

2020-10-11 15:00:37 17 1

原创 android studio常见问题点

1、gradle下载很慢的问题。注释掉 jcenter() ,改用国内阿里云的maven库地址分别修改 buildscript 和 allprojects 的 repositories 即可复制代码// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { maven{url 'ht

2020-10-11 00:15:50 20 1

原创 Android编译过程

当前目录下编译执行,相当于在android目录下执行make 本文介绍Android的编译过程及各种mk文件的导入清理$ make clobber初始化环境$ source ./build/envetup.sh这个命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去选择编译目标$ lunch aosp_arm-eng编译$ make -j16...

2020-10-09 19:02:21 4

原创 Ubuntu16.04 安装openjdk-7-jdk

Ubuntu16.04 安装openjdk-7-jdksudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdkUbuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下:1. oracle openjdk ppa sourcesudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get inst

2020-10-09 18:13:21 13

原创 32、RK3399 编译android报错:build/core/ninja.mk:148: recipe for target ‘ninja_wrapper‘ failed

编译过程中报错:解决方法:1.修改envsetup.sh在build/envsetup.sh脚本中最后添加export LC_ALL=C或者直接导出2.修改version.sh

2020-10-08 09:53:43 28

原创 31、RK3399 编译android -fstack-protector-strong not supported by compiler

Makefile:717: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler File "./scripts/gcc-wrapper.py", line 67 print "error, forbidden warning:", m.group(2) ^SyntaxError: inv

2020-10-08 02:57:24 45

原创 30、RK3399 buildroot新增本地源码包

目录1、创建工程目录2、新建 Config.in3、新建 firefly_demo.mk4、创建源码目录5、编写 Makefile6、修改上一级 Config.in7、配置软件包8、保存配置文件:9、编译10、 打包进根文件系统11、 若修改源码,重新编译软件包12、清除开发过程中,Buildroot 自带的软件包有时可能无法满足我们的需求,为此我们需要添加自定义的软件包。Buildroot 支持多种格式的软件包,包括 generic-package、cmake-package、autotools-pac

2020-10-08 00:28:02 40

原创 29、RK3399 虚拟文件系统proc里查看MMU映射情况

2020-10-07 17:21:24 10

原创 u-boot的boot命令

针对不同的Kernel image格式,u-boot提供了不同的boot指令,例如:booti: 引导ARM64 kernel image—-Image;bootz: 引导ARM kernel image—-zImage;bootm: 引导u-boot自定义的kernel image—-uImage。

2020-10-06 20:30:16 7

原创 28、RK3399工作中常用的命令

目录1、在uboot设置tftp下载设备树、内核和nfs启动rootfs1、在uboot设置tftp下载设备树、内核和nfs启动rootfssetenv ipaddr 192.168.3.101 setenv serverip 192.168.3.32setenv bootcmd tftpboot 0x0027f800 /tftpboot/boot.img \; tftpboot 0x08300000 /tftpboot/rk3399-firefly-aio.dtb \; bootm 0x0

2020-10-06 20:07:38 32

原创 27、RK3399 tftp下载内核、设备树和nfs启动挂载roofs的设置

目录1、在服务器上部署 TFTP 服务:/etc/default/tftpd-hpa2、在服务器上部署 NFS 服务:3、内核的配置4、编译内核:5、U-Boot设置1、在服务器上部署 TFTP 服务:安装 TFTP 服务:sudo apt-get install tftpd-hpa在这里插入代码片创建 /tftpboot 目录并赋予权限:mkdir /tftpbootsudo chmod 777 /tftpboot然后修改 TFTP 服务器的配置文件 /etc/default/tftp

2020-10-06 20:00:08 51

原创 26、RK3399 编译设备树问题点

1、设备树找不到CALL scripts/checksyscalls.shmake[1]: 'include/generated/vdso-offsets.h' is up to date. CHK include/generated/compile.hmake[2]: *** No rule to make target 'arch/arm64/boot/dts/rockchip/rk3399-firefly-aioec-lvds.dtb', needed by '__build'

2020-10-06 16:32:33 55

原创 25、RK3399 在sysfs中访问GPIO引脚

目录1、先确定某个 GPIO2、/sys/class/gpio3、查看文件 label 的内容4、 根据 label 的内容对比设备树5、 基于 sysfs 操作引脚:在 sysfs 中访问 GPIO,实际上用的就是引脚号,老的方法。1、先确定某个 GPIOController 的基准引脚号(base number),再计算出某个引脚的号码。方法如下:2、/sys/class/gpio先在开发板的目录下找到各个 gpiochipXXX 目录:3、查看文件 label 的内容然后进入某个 g

2020-10-06 03:06:33 36

原创 24、RK3399通过设备树来打开debug串口

目录1、修改chosen节点的bootargs2、修改fiq_debugger节点3、添加uart2使能1、修改chosen节点的bootargs文件为:kernel/arch/arm64/boot/dts/rockchip/rk3399-linux.dtsi修改为:chosen { bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 console=ttyFIQ0 ro root=PARTLABEL=r

2020-10-06 02:02:38 44

原创 23、RK3399 buildroot编译Makefile:276: recipe for target解决

1、报错日志ild/linux-local/tools/perf/ install2020-10-05T23:31:04 BUILD: Doing 'make -j9' parallel build2020-10-05T23:31:06 config/Makefile:351: Disabling post unwind, no support found.2020-10-05T23:31:06 config/Makefile:489: Python support disabled by us

2020-10-06 00:09:25 87

原创 22、RK3399只修改设备树bootargs挂载nfs

修改kernel/arch/arm64//boot/dts/rockchip/rk3399-linux.dtsichosen { //支持mmc启动 //bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 ro root=PARTLABEL=rootfs rootfstype=ext4 rootwait overlayroot=device:dev=PARTLABEL=

2020-10-05 17:12:37 48

原创 21、RK3399进入内核查看设备树节点和反编译dts

板子启动后查看设备树板子启动后执行下面的命令:# ls /sys/firmware/devicetree fdt/sys/firmware/devicetree 目录下是以目录结构程现的 dtb 文件, 根节点对应 base 目录, 每一个节点对应一个目录, 每一个属性对应一个文件。这些属性的值如果是字符串,可以使用 cat 命令把它打印出来;对于数值,可以用 hexdump 把它打印出来。还可以看到/sys/firmware/fdt 文件,它就是 dtb 格式的设备树文件,可以把它复制出

2020-10-05 13:44:26 67

原创 20、RK3399驱动模块编译Makefile

目录1、每个.o文件编译出一个.ko文件1、所以.o文件编译出一个.ko文件1、每个.o文件编译出一个.ko文件# 1. 使用不同的开发板内核时, 一定要修改KERN_DIR# 2. KERN_DIR中的内核要事先配置、编译, 为了能编译内核, 要先设置下列环境变量:# 2.1 ARCH, 比如: export ARCH=arm64# 2.2 CROSS_COMPILE, 比如: export CROSS_COMPILE=aarch64-linux-gnu-# 2.3 PATH

2020-10-05 12:27:54 29

原创 19、RK3399总线设备驱动模型匹配过程

1、device和drive匹配原理2、device和drive匹配函数调用函数调用关系platform_device_registerplatform_device_add device_add bus_add_device // 放入链表 bus_probe_device // probe 枚举设备,即找到匹配的(dev, drv) device_initial_probe __device_attach bus_for_each_drv(...,__devi

2020-10-05 02:15:28 8

原创 18、RK3399 更改内核printk打印级别

目录1、查看当前控制台的打印级别2、修改打印3、printk的打印级别1、查看当前控制台的打印级别cat /proc/sys/kernel/printk4 4 1 7其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息2、修改打印echo “新的打印级别 4 1 7” >/proc/sys/kernel/printk数字越大,打印信息越大。不够打印级别的信息会被写到日志中可通过dmesg

2020-10-05 01:51:59 29

原创 17、RK3399 安装驱动时 version magic不匹配

2020-10-05 00:53:02 18

原创 16、RK3399 虚拟文件/sys下去掉某设备驱动

目录1、去掉某设备驱动1、去掉某设备驱动不需要重新配置内核,只需要在开发板上执行以下 3 条命令关闭内核对 LED 的使用即可:# echo none > /sys/class/leds/am335x:green:cpu0/trigger# echo none > /sys/class/leds/am335x:green:mmc0/trigger# echo none > /sys/class/leds/am335x:green:nand/trigger...

2020-10-05 00:51:21 6

原创 15、RK3399编译buildroot问题HTTP request sent, awaiting response... 404 Not Found

解决办法:关闭文档Firefly_Linux_SDK_v1.0\buildroot\configs\rockchip\base.config里面的下面这几个配置,就可以编过了。#BR2_LINUX_KERNEL_CUSTOM_GIT=y#BR2_LINUX_KERNEL_CUSTOM_REPO_URL=“file://$(TOPDIR)/…/kernel”#BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION=“HEAD”...

2020-10-04 21:37:43 67

原创 14、RK3399 烧录工具AndroidTool_Release_v2.65使用

目录1、下载AndroidTool_Release_v2.652、修改分区地址3、修改分区名字同上4、修改分区路径5、添加、删除分区条6、注意事项1、下载AndroidTool_Release_v2.65下载地址:http://www.t-firefly.com/doc/download/page/id/31.html2、修改分区地址双击修改就可以3、修改分区名字同上4、修改分区路径双击选择路径5、添加、删除分区条序列号右键选择6、注意事项(1)、分区地址要和分区脚本一样(2)

2020-10-04 13:53:23 257

原创 13、RK3399 ubuntu下解包和合包工具使用

目录1、工具介绍2、解包3、 合包1、工具介绍使用firefly-rk3399-linux-repack,从firefly官网下载下载地址:http://www.t-firefly.com/doc/download/page/id/31.html2、解包(1)、将工具解压到ubuntu下。(2)、将完整的img固件放入firefly-rk3399-linux-repack的顶层目录。(3)、重命名为update.img(3)、然后执行./unpack.sh 开始解包(4)、解包文件存放在o

2020-10-04 13:40:13 44

原创 12、arm交叉编译程序问题点

目录1、 头文件问题2、库文件问题3 . 运行 问题4、交叉编译程序的万能命令1、 头文件问题编译时找不到头文件。在程序中这样包含头文件:#include <xxx.h>对于尖括号里的头文件,去哪里找它?系统目录:就是交叉编译工具链里的某个 include 目录;也可以自己指定:编译时用 “ -I dir ”选项指定。怎么确定“系统目录”?执行下面命令确定目录:echo 'main(){}'| arm-buildroot-linux-gnueabihf-gcc -E -v -

2020-10-04 13:28:48 37

原创 11、RK3399 Framebuffer应用编程

目录1、硬件原理2、显示点坐标计算3、像素大小4、实例代码1、硬件原理2、显示点坐标计算3、像素大小4、实例代码#include <sys/mman.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <linux/fb.h>#include <fcntl.h>#include <stdio.h>#in

2020-10-04 00:49:46 33

原创 10、RK3399J分区脚本和打包脚本

目录Loader分区: 对应MiniLoaderAll.binParameter分区:参数分区 ,对应parameter.txtuboot分区: 烧写 uboot 编译出来的 uboot.img。trust分区:对应的是trust.img, 其中含有ATF以及休眠唤醒相关的文件misc: misc 分区映像,对应misc.img,负责启动模式切换和急救模式的参数传递,开机检测进入 recovery 模式。(可省略)resource: 资源映像,对应的是resource.img

2020-10-03 19:58:30 40

原创 9、RK3399J 文件IO介绍

目录1、查看mount挂载情况2、挂载虚拟文件系统3、 文件从哪里来4、内核的 sys_open、sys_read 会做什么?5、app调用系统接口图6、字符设备节点介绍7、文件拷贝实例1、查看mount挂载情况```gocat /proc/mounts2、挂载虚拟文件系统mount -t sysfs none /mnt3、 文件从哪里来4、内核的 sys_open、sys_read 会做什么?5、app调用系统接口图6、字符设备节点介绍7、文件拷贝实例#includ

2020-10-03 18:25:33 66

原创 ubuntu开机调整cpu运行模式至高性能

目录1、安装cpufrequtils:2、查看当前cpu的状态:3、把cpu调整到性能模式:4、使用上述方式,重启系统后又回到默认方式。修改默认模式:(1)、安装sysfsutils(2)、编辑/etc/sysfs.conf ,增加如下语句:ubuntu下cpu默认运行在节能模式下,会比较慢,通过如下方式进行调整1、安装cpufrequtils:sudo apt-get install cpufrequtils2、查看当前cpu的状态: cpufreq-info cat /proc/

2020-10-03 13:20:55 87

原创 8、RK3399J通用的Makefile实例代码

目录1、通用主Makefile代码3、Makefile.build2、子Makefile1、通用主Makefile代码CROSS_COMPILE =aarch64-linux- #这里可以添加编译工具AS = $(CROSS_COMPILE)asLD = $(CROSS_COMPILE)ldCC = $(CROSS_COMPILE)gccCPP = $(CC) -EAR = $(CROSS_COMPILE)ar

2020-10-03 12:35:07 14

原创 7、RK3399J通用的Makefile语法和解析

目录1、各级子目录的Makefile:2、顶层目录的Makefile:3、Makefile.build:4、怎么使用这套Makefile:(1)、把顶层Makefile, Makefile.build放入程序的顶层目录(2)、确定编译哪些源文件(2)、. 确定编译选项、链接选项(3)、 使用哪个编译器?(4)、确定应用程序的名字:(5)、 执行"make"来编译,执行"make clean"来清除,执行"make distclean"来彻底清除5、通用 Makefile 的解析(1) make 命令的使用

2020-10-03 12:33:15 21

原创 arm动态库和静态库的制作和使用

目录1、制作、使用动态库2、制作、使用静态库1、制作、使用动态库制作、编译:aarch64-linux-gnu-gcc -c -o main.o main.caarch64-linux-gnu-gcc -c -o sub.o sub.caarch64-linux-gnu-gcc -shared -o libsub.so sub.o sub2.o sub3.o(可以使用多个.o 生成动态库)aarch64-linux-gnu-gcc -o test main.o -lsub -L /libsub.

2020-10-03 02:48:16 51

原创 arm-linux-gcc头文件和库文件指定

目录1、头文件指定2、库文件文件指定3、arm-linux-gcc默认头文件路径3、arm-linux-gcc默认库文件路径4、x86 gcc默认在/usr/下面的include和lib下5、64位的arm交叉工具链开头是aarch64-liunx-1、头文件指定(1)、 # include “printf.h” 指定当前路径(2)、-I /include/printf 指定路径(3)、也可以将头文件放到交叉编译工具链中2、库文件文件指定(1)、 -L /lib/ 指定库文件路

2020-10-03 02:32:10 36

原创 6、RK3399J Linux nfs挂载rootfs启动buildroot固件

目录1、介绍2、安装 TFTP 服务端:3、 安装 安装 NFS 服务: :3、1、介绍Buildroot 编译完成之后生成的 rootfs.tar.gz,可以解压之后放到 NFS 服务器上作为 NFS ROOT 文件系统供开发板使用。使用 NFS 文件系统,便于程序的开发调试。所谓 NFS 服务器,就是我们在 VMWare上运行的 Ubuntu。使用 NFS 文件系统时,我们一般还会在 u-boot 使用 tftpboot 命令从 ubuntu 中下载内核文件 zImage,所以 ubuntu

2020-10-02 23:07:21 48

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除