自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

seven不是程序猿

纪录我嵌入式学习开发经历,一起成长

  • 博客(25)
  • 收藏
  • 关注

原创 kmalloc malloc vmalloc记录

在看nandflash内核编程的时候总是分不清三者间的区别,了解清楚后记录一下方便后面复习kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存 kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc在用户空间遵循mmu机制对内存进行分配,分配一段可用的内存空间供用户进行使用。kmalloc能分配的大小有限,vma...

2018-06-17 02:26:33 199 1

原创 bootm命令移植

Bootloader作用1.初始化软硬件2.启动操作系统内核分类1.zImage 不加信息头的内核2.uImage 加信息头后的内核,用bootm命令来启动bootm作用1.检测信息头:压缩、操作系统、幻数2.根据OS信息调用相应的处理函数:获取内核地址、知道CPU型号、设置启动参数代码编写1.获取启动地址2.设置启动参数2.1设置核心启动参数2...

2018-03-21 02:19:10 323

原创 hal库 dma 中断发送接收过程(真心没有标准库好用)

dma中断定长发送本来很简单的一个问题让hal搞的头大,调来调去的,说好的彻底封装呢,确实很彻底啊,不废话了,实测之后说说的理解吧,不对的话请大佬指正。 hal_uart_transmit_dma如果配置好了dam,开启了通道,直接用这个函数。那么这个函数里面是个啥样的。 函数主体: HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleType

2017-12-29 01:20:01 23751 2

原创 SQLAlchemy笔记&数据伪装

SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。 SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchmey采用了类似于Java里Hib

2017-09-06 15:04:14 316

原创 无人机跟踪系统项目开发过程记录-1

跟着国嵌学习有一段时间了,首先很感谢谢老师提供的这个学习的平台,有知识讲解有代码案例,学习效率很高。谢老师组织的无人机跟踪项目,就这周开始学习,跟着一起学习一起进步。   每天的学习内容我会记录下来,以后可以复习或是阅读经验。就写这么多咯,有兴趣的朋友可以跟着一起学习一起讨论,或是直接来群里,跟着谢老师一起学。

2017-05-23 12:46:12 1419 1

原创 [国嵌学习日记][114][自己动手写驱动]

驱动

2017-05-18 02:58:41 210

原创 [国嵌学习日志][113][字符设备驱动模型]

设备驱动模型 1.驱动初始化(驱动安装) 1.1.分配设备描述符 1.2.初始化设备描述符 1.3.注册设备描述符 1.4.硬件初始化 2.实现设备操作(驱动操作) 3.驱动注销(驱动卸载)设备描述结构 在任何一种驱动模型中,设备都会用内核中的一种结构来描述。我们的字符设备在内核中使用struct cdev来描述。 struct cdev{     struct kobject

2017-05-17 23:00:10 248

原创 Cuda编程结构《1》

因为研一的课程里面有高性能计算这门课,没办法,为了不让上课成为苦恼的工作,只能认真学,还好CUDA变成对于我来说也不算陌生,那么我也记录下我的学习过程,为后来的同学铺垫一下。   学习编程就必须要知道CUDA程序到底是怎么一个执行过程。好的,这一节在介绍流之前,先把CUDA程序结构简要说一下。 CUDA程序文件后缀为.cu,有些编译器可能不认识这个后缀的文件,我们可以在VS2008的To

2017-05-17 13:59:00 221

原创 字符串copy函数技术推演

//字符串推演 //先打桩后实现打包 void copy_str01(char *from, char *to) { for (; *from!=’\0’; from++, to++) { *to = *from; } *to = ‘\0’; }void copy_str02(char *from, char *to) {

2017-05-10 03:40:55 236

原创 字符串一级指针内存模型

char buf[20] = "aaa";//aaa在全局 定义并且初始化char buf2[] = "bob";全局char *p1 = "1111";全局char *p2 = malloc(100);strcpy(p2,"3333")//返回一个字符串常量的内存首地址 拷贝到malloc的地址

2017-05-10 02:18:14 199

原创 [国嵌学习]ARM中PC和LR的关系

最近在国嵌学习过程中,中断一节对于pc和lr有了更深的理解!! 我们常常听说的PC,LR到底是什么关系,我这次终于弄明白了。我们都知道,LR是指向PC下一次要执行的地址,但是ARM不同的工作模式,他们有不同的关系。ARM有如下几种工作模式:用户模式,FIQ模式,IRQ模式,系统模式,终止模式,数据访问终止模式,未定义模式。ARM是三级流水线的:取指,译码,执行。ARM的R15(PC)总是指

2017-03-24 23:34:06 3032

原创 [学习日记][2-2-2-4][ARM寻址方式]

寻找方式1.处理器根据指令中给出的信息来找到指令所需操作数的方式2.立即数寻址操作数本身在指令中给出,立即数前加”#”表示立即数寻址,操作数在指令中3.寄存器寻址利用寄存器中的数值作为操作数,操作数在寄存器中4.寄存器间接寻址利用存放在寄存器中的内存地址中的数值作为操作数,在寄存器加上[],操作数存放在内存中5.基址变址寻址利用寄存器中保存的基地址和立即数中保存的偏移,找到内存地址中的数值作为操作数

2017-03-15 02:12:27 206

原创 [学习日记][2-2-2-2/3][ARM处理器工作模式]

[ARM处理器工作模式]处理器工作模式1.User(urs):用户模式,linux应用程序运行在用户模式2.FIQ(fiq):快速中断模式3.IRQ(irq):中断模式4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式5.Abort(abt):异常模式6.Undefined(und):未定义指令模式7.System(sys):系统模式[ARM寄存器详解]ARM寄存器(

2017-03-15 02:10:35 179

原创 [学习日志][2-2-5][Eclipse集成开发环境]

Eclipse集成开发环境的作用可以编译程序,也可以对程序进行在线调试集成开发环境1.JLink连接开发板的JTAG2.JLink连接PC的USB3.eclipse软件4.gdb server软件5.JLink软件安装步骤1.格式化nand flash2.连接JLink,并设置从nand flash启动3.安装gdb server软件 1.tar zxvf linux-gdb-7.5.tar.gz

2017-03-14 00:40:09 184

原创 [学习日志][2-2-4][链接器脚本]

链接器脚本一个可执行程序通常由:代码段、数据段、bss段构成。在用于链接这个程序的链接器脚本中,反应的是这几个段的信息。创建链接器脚本1.创建链接器脚本 vim led.lds2.设置起始链接地址 . = 0x300080003.对其设置 . = ALIGN(4);arm处理器在访问数据的时候是以4字节对齐的方式访问的,所以在存储数据时以4字节对齐可以提高访问效率4.使用变量 start_a

2017-03-14 00:37:50 160

原创 [学习日志][2-2-3][Makefile工程管理]

Makefile的用途1.make能够使整个程序的编译、链接只需一个命令就可以完成2.make的工作主要依赖于Makefile的文件。Makefile文件描述了整个程序的编译、链接等规则,使之自动完成。Makefile的构成1.规则 targets(目标):prerequisties(依赖)   command(命令) 注意:command前面是[tab]而不是空格,否则执行会出错 1.伪

2017-03-14 00:35:50 200

原创 [学习日志][2-2-2][交叉工具链]

交叉工具链1.交叉工具是编译在arm平台上运行程序的工具,交叉工具链是交叉工具的集合2.file filename 通过file命令可以查看程序运行的平台等相关信息3.交叉开发 1.在x86平台上产生其他平台上运行程序的模式叫做交叉开发 2.宿主机是产生嵌入式软件的平台,目标机是运行嵌入式软件的平台常用的交叉工具1.交叉编译器 arm-linux-gcc 相同之处arm-linux

2017-03-14 00:34:00 234

原创 [学习日志][2-2-1][裸机开发快速体验]

裸机开发流程1.编写裸机程序2.调试裸机程序3.生成2进制映像(编译、链接、格式转换)4.烧写/运行2进制映像安装交叉编译器1.复制arm-tools到Linux中2.解压工具链 tar zxvf ARM-tools.tar.gz3.安装arm-linux-gcc tar zxvf arm-liunx-gcc… -C / “-C”表示解压到指定目录”/”中,arm-linux-gcc…,自

2017-03-12 04:37:05 324

原创 [问题笔记]串口只能显示不能输入

问题描述:在做实验时,串口无法输入,但有输出显示。换了一根串口线后可以正常显示和接收信号。问题分析:串口有两根信号线,tx(传输信号)和rx(接收信号)。串口有输出说明传输信号在正常工作,可能是接收信号无法工作造成无法输入。通过短接tx和rx,把传输信号直接输入到接收信号,如果无法正常工作说明接收接收信号坏了。详细步骤:1.把串口线接到PC上,打开串口终端2.短接tx和rx信号3.在键盘上输入,如果

2017-03-12 03:30:41 10856

转载 大牛总结的机器学习资料

本文汇编了一些机器学习领域的框架、库以及软件(按编程语言排序)。C++计算机视觉CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,并支持Windows, Linux, Android and Mac OS操作系统。通用机器学习MLPackDLib

2016-11-09 10:35:20 474

转载 socket学习(6)

套接口类型与协议在第一章我们看到了如何使用socketpair函数来创建一对本地套接口。在这一章我们将会了解使用socket函数来创建一个套接口。通常情况下这两个函数都有域,套接口类型,以及协议参数。这一章将会建立在前几章的基础之上,并且主要关注于socket函数调用。这包括下面的一些内容:域参数套接口类型参数协议参数指定一个套接口的域在 第一章,我们可

2016-10-13 18:24:02 303

转载 socket学习(五)

地址转换函数上一章中,我们已经了可以分配与初始化各种类型的套接口。这些是由一个常量进行初始化的简单例子。由一个使用变化地址的C字符串设置一个地址需要更多的编程努力。在这一章,我们将会关注建立网络地址的传统问题,以及了解可以在这一领域帮助我们的函数。在这一章,我们了解到如下内容:网络地址分类IP网络掩码私有的以及保留的IP地址IP转换函数然而在我们开始之前,这是一

2016-10-13 11:35:04 199

转载 Arduino入门--led的点亮

Hello World ,中文意思:你好,世界。世界上的第一个程序就是Hello World,由Brian Kernighan创作。然而在单片机、微控制器的学习上的Hello World 就是通过程序控制LED灯(通常是发光二极管)闪烁。1准备我的系统:Windows 7 x64Arduino IDE:1.6.11 点击链接查看下载及安装开发板:本例分别

2016-10-10 00:58:56 890

转载 socket学习(3)

无名套接口套接口并不总是需要有一个地址。例如, socketpair函数创建了两个彼此相连的两个套接口,但是却没有地址。实际上,他们是无名套接口。想像一下冷战期间美国总统与苏联之间的红色电话。 他们任何一端并不需要电话号码,因为他们是直接相连的。同样,socketpair函数也是直接相连的,也并不需要地址。匿名调用有时在实际上,连接中的两个套接口中的一个也没有地址。对于要连接的远程套接

2016-10-09 23:09:55 188

转载 socket学习第一天

理解套接口在我们试着使用套接口之前理解套接口后面的一些内容是很重要的。这一部分描绘出围绕着套接口的一些高级内容。定义套接口要与使用电话的某人进行交流,我们必须拿起话筒,拨打对方的电话号码,并且等待对方的应答。当我们与对方通话时,就建立了两个通信端点。我们的电话,在我们的位置远方的对方电话,在他的位置。只要我们仍在通话,就我们之间调用两个端点,建立了一条通信线路。Linu

2016-10-09 10:40:59 149

空空如也

空空如也

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

TA关注的人

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