[置顶] SHA204A加密芯片配置

摘要: 1、参考配置文章:http://blog.csdn.net/a5882230/article/details/522148452、可以选slot configuration 1作为密钥区,该区的配置应为:0x81 81,对应的data 0的数据就密钥数据。3、slot configuration的配 阅读全文
posted @ 2017-07-24 15:50 echo5 阅读(445) 评论(0) 推荐(0) 编辑

[置顶] 多个C源文件编译成一个内核模块之makefile模板

摘要: Sometimes it makes sense to divide a kernel module between several source files. Lets say you have 2 source files :start.c and stop.cyou can create a 阅读全文
posted @ 2017-07-24 15:49 echo5 阅读(227) 评论(0) 推荐(0) 编辑

[置顶] 中断与时钟

摘要: 1、根据中断入口跳转方法的不同,分为向量中断和非向量中断;2、采用向量中断的 CPU 通常为不同的中断分配不同的中断号,当检测到某中断号的中断到来后,就自动跳转到与该中断号对应的地址执行。不同中断号的中断有不同的入口地址;3、非向量中断的多个中断共享一个入口地址,进入该入口地址后再通过软件判断中断标 阅读全文
posted @ 2017-07-24 15:48 echo5 阅读(117) 评论(0) 推荐(0) 编辑

[置顶] 存储控制器、MMU、flash控制器介绍

摘要: 1、存储控制器: 以S3C2410开发板为例,其对外引出了27根地址线(即:ADD0 ~ ADD26),所获得的访问范围只有128MB(2^27 Byte),由于CPU对外引出了8根片选信号,分别对应8个BANK(BANK0 ~ BANK7),而128MB*8=1GB,所以S3C2410用于连接外设 阅读全文
posted @ 2017-07-24 15:47 echo5 阅读(566) 评论(0) 推荐(0) 编辑

[置顶] 指针知识总结

摘要: 定义int *a = 1; a:取指针a的值(即地址) *a:取指针a指向的内容 &a:取存放指针a的值的地址 一、基本概念及区别1、变量a 本质上代表一个存储单元。CPU通过该存储单元的地址访问该存储单元中的数据。所以a本来代表两个值:存储单元的地址和储单元中的数据。于是就有了二异性。为了消除这种 阅读全文
posted @ 2017-07-24 15:39 echo5 阅读(141) 评论(0) 推荐(0) 编辑

[置顶] UART通信

摘要: UART0串口调试过程:1、配置DTS节点 在Z:\rk3399\kernel\arch\arm64\boot\dts\rockchip路径下打开rk3399.dtsi文件,里面已经有UART0相关节点定义,如下所示: uart0: serial@ff180000 { compatible = "r 阅读全文
posted @ 2017-07-24 15:39 echo5 阅读(1116) 评论(0) 推荐(0) 编辑

[置顶] 浅谈mmap()和ioremap()的用法与区别

摘要: 一、mmap()mmap()函数是用来将设备内存线性地址映射到用户地址空间。(1)首先映射基地址,再通过偏移地址寻址;(2)unsigned char *map_cru_base=(unsigned char * )mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRIT 阅读全文
posted @ 2017-07-24 15:38 echo5 阅读(3137) 评论(0) 推荐(1) 编辑

[置顶] 为Android添加一个开机完成后执行的脚本

摘要: 1、编写相应的执行脚本文件ledgpio.sh,将其放在device/rockchip/rk3399路径下:#!/system/bin/shinsmod /system/lib/modules/ledgpio.ko 2、修改device.mk文件,添加以下内容:#ledgpioPRODUCT_COP 阅读全文
posted @ 2017-06-07 14:31 echo5 阅读(832) 评论(0) 推荐(0) 编辑

[置顶] ATSHA204加密认证过程

摘要: 1、sha204_wakeup(wakeup_response) //唤醒 → 1)chip_wakeup() //wake token 0x00(唤醒标志) 2)sha204_receive_response(0x4, response) → 1)chip_sendbyte(FLAG_CLIENT 阅读全文
posted @ 2017-05-22 15:02 echo5 阅读(874) 评论(0) 推荐(0) 编辑

[置顶] ATSHA204加密芯片介绍

摘要: 1、认证流程:(1)主机(Host)生成256位摘要(挑战),发送给ATSHA204芯片(Client),进行挑战;(2)ATSHA204芯片使用HASH算法将摘要信息和自己的密钥进行计算,得到响应1;(3)同时,主机使用HASH算法将该摘要信息和自己的密钥进行计算,得到响应2;(4)主机将响应1和 阅读全文
posted @ 2017-05-22 11:18 echo5 阅读(1407) 评论(0) 推荐(0) 编辑

[置顶] Linux设备中的并发控制

摘要: 一、自旋锁1、定义自旋锁:spinlock_t lock2、初始化自旋锁:spin_lock_init(lock)3、获得自旋锁:spin_lock(lock)4、释放自旋锁:spin_unlock(lock)5、自旋锁实例:/* 定义一个自旋锁spinlock_t lock;spin_lock_i 阅读全文
posted @ 2017-04-27 15:01 echo5 阅读(128) 评论(0) 推荐(0) 编辑

[置顶] Linux字符设备驱动

摘要: 使用cdev结构体描述一个字符设备: struct cdev { struct kobject kobj; /* 内嵌的 kobject 对象 */ struct module *owner; /*所属模块*/ struct file_operations *ops; /*文件操作结构体*/ str 阅读全文
posted @ 2017-04-27 15:00 echo5 阅读(145) 评论(0) 推荐(0) 编辑

[置顶] wifi驱动总结(2)

摘要: 1、dhd_module_init(驱动模块初始化函数) → dhd_wifi_platform_register_drv(查找设备,注册驱动) → 1) wifi_ctrlfunc_register_drv(wifi控制驱动注册) Y 2) dhd_wifi_platform_load(wifi控 阅读全文
posted @ 2017-04-27 14:56 echo5 阅读(1049) 评论(0) 推荐(0) 编辑

[置顶] wifi驱动总结(1)

摘要: 一、wifi平台设备驱动注册过程Path:Rtw_android.c (rk3399\kernel\drivers\net\wireless\rockchip_wlan\rtl8723au\os_dep\linux);Static struct Platform_driver wifi_device 阅读全文
posted @ 2017-04-27 14:53 echo5 阅读(650) 评论(0) 推荐(0) 编辑

[置顶] gcc编译

摘要: 一个C/C++文件要经过预处理、编译、汇编和连接等4步才能变成可执行文件: (1)以#开头的命令被统称为预处理,比如“#include”,宏定义命令“#define”和条件编译命令“#if”和 “#ifdef”等,经过预处理后的代码将输出到一个“.i”文件中去,预处理使用arm-Linux-cpp工 阅读全文
posted @ 2017-04-27 14:36 echo5 阅读(128) 评论(0) 推荐(0) 编辑

[置顶] makefile文件模板介绍

摘要: 1 src : = $(shell ls *.c)2 objs : = $(patsubst %.c, %.o, $(src))3 test : $(objs)4 gcc -o $@ $^5 %.o : %.c6 gcc -c -o $@ $<7 cleam :8 rm -f test *.o 注: 阅读全文
posted @ 2017-04-27 14:36 echo5 阅读(86) 评论(0) 推荐(0) 编辑

[置顶] 模块调用过程

摘要: 1、创建led.ko 创建.ko文件的过程详见上一章节:为Android内核添加新驱动;(注:make menuconfig中Device Drivers菜单下,选中项这里使用[M]作为modules)2、串口连接 这个就不多讲了,拿串口线将PC和芯片连接;3、开发板固件烧写(1)固件生成,由于每个 阅读全文
posted @ 2017-04-27 14:34 echo5 阅读(214) 评论(0) 推荐(0) 编辑

[置顶] 为Android内核添加新驱动

摘要: 转载地址:http://blog.chinaunix.net/uid-16759545-id-4892379.html 1. 在drives目录下添加hello目录,内含hello.c Kconfig Makefile hello.c内容: #include <stdio.h> MODULE_LIC 阅读全文
posted @ 2017-04-27 14:30 echo5 阅读(361) 评论(0) 推荐(0) 编辑

[置顶] GPIO控制LED

摘要: 一、LED灯的亮灭控制的配置步骤(GPIO4_D3): 1、GPIO4的CRU_CLKGATE_CON31时钟使能配置(用来保证GPIO4可写): io -4 0xff76037c 0xffff0198 2、GPIO4A的GRF_GPIO4D_IOMUX复用选择配置(用来选择GPIO功能): io 阅读全文
posted @ 2017-04-27 14:10 echo5 阅读(648) 评论(1) 推荐(0) 编辑

RK3399 BOX编译步骤

摘要: 1、U-Boot编译: make rk3399_box_defconfig make ARCHV=aarch64 生成trust.img、 RK3399MiniLoaderAll_V1.05.bin、 uboot.img; 2、Kernel编译: make ARCH=arm64 rockchip_d 阅读全文
posted @ 2017-07-24 14:27 echo5 阅读(731) 评论(0) 推荐(0) 编辑