嵌入式
文章平均质量分 56
学习记录
Moonright
这个作者很懒,什么都没留下…
展开
-
linux下svn常用命令
1、将文件checkout到本地svn checkout path(path是服务器的目录)例如 :svn checkout svn://192.168.1.1/pro/domain2、往版本库中添加新的文件svn add filename例如:svn add test.cpp3、将改动的文件提交到版本库svn commit -m "注释" [-N] [--no-unl...转载 2018-10-15 18:02:31 · 176 阅读 · 0 评论 -
PuTTY在Windows中向Linux上传文件
PSCP工具PuTTY小巧方便。但若需要向网络中的Linux系统上传文件,则可以使用PuTTY官方提供的PSCP工具来实现上传。PSCP基于ssh协议实现,其用法与SCP命令非常类似。获取PSCP工具在PuTTY官方网站的下载页中,找到PSCP,下载。下载后,习惯性的将pscp.exe与Putty.exe文件放在一起。首先需要保证在命令行下可以访问到pscp.exe。可以通...转载 2018-08-22 19:17:41 · 1051 阅读 · 0 评论 -
c语言中如何使用json
json: 为了避免不同平台下的字节对齐、类型大小不统一的问题,json库把数据封装成具有一定格式的字符流数据,进行传输。 json格式:把数据与键值一一对应,数据传输双方约定好同一键值,使用接口API根据键值操作jason对象(jason_object)存储或取得数据。一般使用:数据-》(封装)jason对象-》String格式-》。。。传输。。。-》String格式-》(解...原创 2018-08-22 19:07:49 · 4319 阅读 · 0 评论 -
linux驱动学习笔记---输入子系统框架(十一)
1.input core层中初始化input_dev_list链表与input_handler_list链表 2.初始化input_handler对象,并注册到内核链表中注册之后会匹配一次通过结构体中的node成员连接起来构成input_handler链表 注册时,会将handler对象加入到input_table数组中 3.初始化input_...原创 2018-08-19 22:40:14 · 272 阅读 · 0 评论 -
java中怎么使用json
1.一般我们在进行客户端和服务端交换数据的时候,会使用Json来进行数据的传输,即转换成字符串类型的json数据来进行数据的交换。2.Json类型的数据一般是 JSONObject(对象),JSONArray(数组)。一般来说二组的区别在于,对象是无序的,而数组是有序的,看具体需求选择使用。import org.json.simple.JSONArray;import org.json...转载 2018-08-22 14:24:26 · 1825 阅读 · 0 评论 -
linux驱动学习笔记---杂项设备注册和ioctl+gpio库函数使用以及平台自定义数据(十)
平台自定义数据 在pdev中创建自定义对象 在pdrv中声明,接收平台自定义数据 使用平台自定义数据 释放平台自定义数据 杂项设备注册 pdev端驱动代码 #include <linux/init.h>#include <linux/module.h>#include <linu...原创 2018-08-15 21:47:06 · 1029 阅读 · 0 评论 -
linux驱动学习笔记---平台总线框架(九)
平台总线的需求由来 平台总线的模型 一.初始化device链表与device_driver链表struct device { struct device *parent; struct device_private *p; struct kobject kobj; const char *init_name; /* initial name of the de...原创 2018-08-15 21:20:10 · 730 阅读 · 0 评论 -
linux驱动学习笔记---内存映射(八)
使用内存映射的好处是可以加快我们应用与内核数据传送的速度,一般的调用需要在应用层申请空间,同时需要在内核申请空间,有内存映射就可以只申请一个空间就可以. 加载函数中申请空间 //分配内存 key_dev->virt_mem = kzalloc(PAGE_SIZE, GFP_KERNEL);卸载函数中释放空间kfree(key_dev->virt_mem...原创 2018-08-12 20:25:06 · 843 阅读 · 1 评论 -
linux驱动学习笔记---实现中断下半部以及驱动编写规范(七)
中断下半部:tasklet :struct tasklet_struct{ struct tasklet_struct *next; unsigned long state; atomic_t count; void (*func)(unsigned long); //下半部要执行的代码 unsigned long data; // 传递给...原创 2018-08-12 19:20:22 · 589 阅读 · 1 评论 -
Ubuntu 12.04/14.04 linux环境配置
Ubuntu 12.04/14.04 linux环境配置 1. vi功能增强1.1 VI中不能正确使用上下箭头解决方法sudo apt-get install vim (安装完整版本的 VI) 1.2 ubuntu里面颜色 VI的个性设置新建 /etc/vim/vimrc.local,里面添加内容如下(仅供参考):set nuset nocpset r...转载 2018-08-17 16:48:34 · 481 阅读 · 0 评论 -
Ubuntu 12.04 linux环境配置
tftp服务器的安装与配置tftp主要用于嵌入式交叉开发环境的搭建,传输文件。0、创建tftp的工作目录,并修改权限sudo mkdir /tftpbootsudo chmod 777 /tftpboot1、安装:sudo apt-get install tftp tftpd openbsd-inetd2、打开配置文件 /etc/inetd.conf :sudo v...转载 2018-08-17 17:19:25 · 1418 阅读 · 0 评论 -
错题集
原创 2018-09-20 22:54:32 · 346 阅读 · 0 评论 -
stm32学习笔记---ADC电压采集
1. ①电压输入范围ADC 输入范围为:VREF- ≤ VIN ≤ VREF+。由 VREF-、VREF+ 、VDDA 、VSSA、这四个外部引脚决定。我们在设计原理图的时候一般把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得到ADC 的输入电压范围为:0~3.3V。如果我们想让输入的电压范围变宽,去到可以测试负电压或者更高的正电压,我们可以在外...转载 2018-09-12 22:03:05 · 128059 阅读 · 24 评论 -
网络通信---epoll
#include "head.h"/*功能:将传入的文件描述符进行非阻塞处理 *newfd:需要处理发文件描述符 *返回值:空 */void set_nonblock(int newfd){ int flags = fcntl(newfd,F_GETFL); flags |= O_NONBLOCK; fcntl(newfd,F_SETFL,flags); ...转载 2018-09-12 21:17:02 · 205 阅读 · 0 评论 -
stm32学习笔记---DMA直接存储区访问
#include "bsp_dma_mtm.h"/* 定义aSRC_Const_Buffer数组作为DMA传输数据源 * const关键字将aSRC_Const_Buffer数组变量定义为常量类型 * 表示数据存储在内部的FLASH中 */const uint32_t aSR...原创 2018-09-11 22:27:31 · 1149 阅读 · 0 评论 -
如何在交叉编译链中链接json库
下载源码wget http://oss.metaparadigm.com/json-c/json-c-0.9.tar.gz tar xvf json-c-0.9.tar.gz cd json-c-0.9/./configure --prefix=$PWD/tmp CC=/opt/toolchain/toolchain-4.5.1-farsight/bin/arm-non...原创 2018-08-24 21:25:02 · 1000 阅读 · 0 评论 -
stm32学习笔记---中断与事件的区别以及外部中断
中断与事件的区别 这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,...原创 2018-08-28 20:23:58 · 11661 阅读 · 6 评论 -
stm学习笔记---stm32工程的创建
1.新建工程文件夹在Doc中创建readme.txt文档,说明工程的内容,概述Libraries文件夹直接从事例工程中复制Project为空文件夹User中从事例工程STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下复制头文件与.c文件 2.创建工程打开keil5,点击创建...原创 2018-08-28 10:14:34 · 313 阅读 · 0 评论 -
linux系统中使C程序脱离终端运行(后台运行)
你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz文件,连续压缩了半个小时还没有完成,这时,突然你断网了,你登录不上远程Linux主机了,那么前面的半个小时就会前功尽弃,你非常气愤……在Linux下,如果你要执行的shell命令耗时特别长,并且:(1)你的网络不稳定,随时可能断网;或者(2)你在执行了shell命令之后必须要关闭终端软件(例如S...转载 2018-08-20 21:16:31 · 5145 阅读 · 1 评论 -
ubunt 14.04 linux基本配置
1. 更新 apt 源sudo apt-get update3. 安装 SSHsudo apt-get install ssh4. 安装 xchmsudo apt-get install -y xchm5. 安装 GCCsudo apt-get install -y g++-4.4 gcc-4.4 cpp g++-4.4-multilib gcc-4.4-multilib g+...原创 2018-08-17 18:27:03 · 883 阅读 · 2 评论 -
linux驱动学习笔记---多路复用实现所有按键中断以及非阻塞的实现(六)
1,文件io模型: 阻塞, 非阻塞, 多路复用2,文件io中的ioctl和mmap接口3, 中断下半部:softirq, tasklet, workqueue4, 驱动中出错判断(驱动编写的规范)----------------------------------------------非阻塞: 因为linux文件io都是阻塞, 需要非阻塞的话,就需要进行 应...原创 2018-08-12 16:44:38 · 732 阅读 · 0 评论 -
ARM学习笔记---arm工作模式指令以及arm指令(一)
目录 ARM工作模式 ARM处理器的工作原理 ARM的指令格式和寻址方式 ARM版本与指令集 大端模式与小端模式 ARM core中的寄存器 ARM工作模式 ARM处理器的工作原理 ARM的指令格式和寻址方式 ldr r0,[r1]实际上是在r1寄存器中找到地址,再找到这个地址中所对应的数据,放入r0寄存器中 ...原创 2018-08-02 21:11:13 · 628 阅读 · 0 评论 -
linux驱动学习笔记---文件IO调用框架(五)
1.创建cdev对象在申请设备号时,我们会创建cdev对象,这个对象中实现了fops,以及我们所申请的主次设备号2.注册cdev到内核链表中这一步中我们将申请的设备号注册到了内核链表中3.创建设备节点,设备节点中有我们的主次设备号设备节点中存有主次设备号 struct inode { /* RCU path lookup touches follow...原创 2018-08-11 20:55:35 · 275 阅读 · 0 评论 -
Activity学习日记(九)
目录 Handler的基本使用方法示例 listview基本使用简单聊天程序客户端(java)[服务器可以找epoll服务器日志]SendBd_有序广播和无需广播_获取电池电量serviceTest_简易播放器BaseAdapter的用法Handler的基本使用方法示例package com.hq.handlertest;import android.ap...原创 2018-07-21 10:52:02 · 227 阅读 · 0 评论 -
Activity学习日记(七)
目录 外部存储的基本用法 数据库操作基本用法 外部存储的基本用法package com.hq.test;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import jav...原创 2018-07-21 10:13:40 · 734 阅读 · 0 评论 -
Activity学习日记(六)
Activity学习日记(六)实现内部文件存储package com.hq.myapp;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import andro...原创 2018-07-21 09:59:26 · 303 阅读 · 0 评论 -
Activity学习日记(五)
Activity学习日记(五)实现密码记住功能package com.hq.myapp;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import andro...原创 2018-07-19 15:52:20 · 165 阅读 · 0 评论 -
Activity学习日记(二)
Activity学习日记(二)主要内容 UI布局--四种布局 UI控件的事件处理 UI常用控件及使用 Toast--吐司 dailoge--对话框View的概念 a,用来显示数据、影像或是其他信息的组件,组件全部继承与View View...原创 2018-07-18 21:25:22 · 212 阅读 · 0 评论 -
stm32学习笔记---PWM实现控制呼吸灯
void tim3_init(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; TIM_OCInitTypeDef TIM_OCInitStruct;/***************************¶¨Ê±Æ÷»ù±¾¹¦ÄÜ************************************/...原创 2018-07-23 22:07:44 · 14306 阅读 · 0 评论 -
stm32学习笔记---计数器定时中断(1s)
#include "tim_driver.h"//tim2³õʼ»¯:1ÃëÖÓ¸üÐÂÊý¾Ývoid tim2_init(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; //ʹÄÜʱÖÓ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); ...原创 2018-07-23 21:24:29 · 8890 阅读 · 1 评论 -
stm32学习笔记--SPI通信以及OLED屏幕显示
SPI中沿变化,导致寄存器与数据线的数据进行交互;iic中高电平时寄存器与数据线进行交互/*********************************iBoxV300********************************* ...原创 2018-07-29 21:04:41 · 23983 阅读 · 6 评论 -
stm32学习笔记---点亮一个LED灯
原理图决定低电平点亮 根据原理图与系统结构图,点亮LED灯需要使能APB2,初始化PB6,PB7,PB8 #include "led_driver.h"//1.硬件初始化void led_init(void){ GPIO_InitTypeDef GPIO_InitStruct; //使能时钟总线 RCC_APB2PeriphClockCmd(RCC_APB...原创 2018-07-22 18:05:38 · 2655 阅读 · 1 评论 -
stm32学习笔记---使用外部精准时钟实现滴答计时器精准延时
使用外部精准时钟#include "rcc_driver.h"//1.硬件初始化:72MHzvoid rcc_init(void){ //0.将RCC设置为缺省状态 RCC_DeInit(); //1.选择合适的时钟源:HSE RCC_HSEConfig(RCC_HSE_ON); //2.检测HSE是否真的启动 if(RCC_WaitForHSESt...原创 2018-07-22 19:05:54 · 3850 阅读 · 0 评论 -
linux驱动学习笔记---按键中断程序(四)
如何申请中断中断的产生原理 在加载函数中申请中断 irqno = IRQ_EINT(1); //参数1--中断号码 //获取中断号码的方法: 1,外部中断IRQ_EINT(x) // 2, 头文件 #include <mach/irqs.h> #include <plat/irqs.h> //参数2--中断的处理方法 //参数3--...原创 2018-08-11 19:38:00 · 2209 阅读 · 0 评论 -
linux驱动学习笔记---点亮一个led灯(三)
led硬件地址映射和操作1.点亮s5pv210的led灯首先需要知道其所用引脚,以及引脚所对应的状态寄存器与数据寄存器根据外围电路图可知两个灯所用的引脚分别为gpc0_3与gpc0_4,找到其引脚所对应的寄存器 状态寄存器 5位的数据寄存器在驱动模块加载中做地址映射,映射的地址为8个字节64位(包括状态寄存器与数据寄存器)gpc0con + 1(一个寄存器...原创 2018-08-11 15:48:46 · 3719 阅读 · 0 评论 -
linux驱动学习笔记---如何写一个简单的驱动程序(二)
设备号:包含两个部分:主设备号和次设备crw--w---- 1 root tty 4, 10 Jul 26 06:05 tty10crw--w---- 1 root tty 4, 11 Jul 26 06:05 tty11crw--w---- 1 root tty 4, 12 Jul 26 06:05 tty12主设备号(整数) : 表示...原创 2018-08-11 14:14:44 · 2275 阅读 · 0 评论 -
linux驱动学习笔记---s5pv210(一)
1,解压内核源码tar -xvf linux-3.0.8.tar.bz22,内核的编译步骤: a,设置交叉工具链--目标文件运行在arm处理上, 修改Makefile 195 ARCH ?= arm 196 CROSS_COMPILE ?= arm-none-linux-gnueabi- ...原创 2018-08-06 18:40:22 · 752 阅读 · 0 评论 -
stm32学习笔记---IIC通信以及用IIC实现EEPROM的读写
IIC通信#include "i2c_driver.h"#include "systick_driver.h"#define GPIO_PORT_I2C GPIOB /* GPIO端口 */#define RCC_I2C_PORT RCC_APB2Periph_GPIOB /* GPIO端口时钟 */#define I2C_SCL_PIN GPIO_Pin_6...原创 2018-07-27 21:35:04 · 6075 阅读 · 2 评论 -
ARM学习笔记---S5PV210硬件操作方法以及裸机点灯程序(三)
U-Boot 1.3.4 (Jul 11 2018 - 10:53:57) for FS210CPU: S5PV210@1000MHz(OK) APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz MPLL = 667MHz, EPLL = 96MHz Hcl...原创 2018-08-04 16:49:41 · 1217 阅读 · 0 评论 -
ARM学习笔记---ARM指令(二)
汇编代码练习 area mytexcode, code, readonly;一般异常向量表都在最前面 b reset ; ldr pc, reset_space ; 0x0 undefined_exception b undefined_exception ; 0x4swi_exception...原创 2018-08-04 14:42:06 · 696 阅读 · 0 评论