
嵌入式:裸机开发
文章平均质量分 82
conding123
嵌入式音视频软件开发(海思,MSTAR,国科,君正)
2753381576@qq.com
展开
-
基于S3C2440的系统时钟配置
基于S3C2440的系统时钟配置1、系统时钟概念S3C2440分为三种不同时钟:(1)FCLK:开发板最快的时钟频率CPU的频率 (2)HCLK:一般是开发板内存的运行频率:SDRAM,FLASH(3)PCLK:串口和定时器的一般外设的运行频率(详见官方的英文手册)2、如何设置S3C2440的系统时钟? 外部的系统时钟的晶振仅仅只有12M,是的没有错就原创 2017-06-21 19:36:21 · 812 阅读 · 0 评论 -
从零开始ARM裸机开发之建立开发环境
从零开始ARM裸机开发之建立开发环境 --参考朱有鹏ARM裸机课程1、前言:以前学过TQ2440的程序,在Ubuntu中建立的环境是不符合S5PV210需要的开发环境的这篇博文主要讲解一下建立一个简单的嵌入式开发环境需要什么?2、回原创 2017-10-14 17:46:18 · 6180 阅读 · 0 评论 -
如何从SD卡烧录文件到S5PV210
如何从SD卡烧录文件到S5PV210 --参考朱有鹏ARM裸机教程1、前言:一般我们学习裸机课程的时候,一般是使用USB的下载方式,但是210提供了很多种启动方式给我们,比如SD卡的启动方式。2、S5PV210的启动方式:前面的博客中有提到S5PV210的启动方式(1)可原创 2017-10-15 11:28:27 · 1527 阅读 · 0 评论 -
从零开始的理解代码重定位
从零开始的理解代码重定位--参考朱有鹏ARM裸机编程1、什么是重定位?重定位就是代码搬移到你想要的地址,本来程序是运行在运行地址处的,你可以通过重定位搬移到链接地址处。2、为什么需要重定位?大部分的程序是不需要重定位的,但是有时候需要进行重定位,最常见的例子就是我们的UBOOT,因为我们的UBOOT有200多KB,但是我们开始BL0的地方只有96KB。所以我原创 2017-11-18 09:55:44 · 8953 阅读 · 0 评论 -
从零开始的代码重定位--一个小实例
从零开始的代码重定位--一个小实例 ---参考朱有鹏ARM裸机编程1、任务:在SRAM中将代码从0xd0020010重定位到0xd0024000如果创造这个环境?把程序下载到0xd0020010,但是在链接脚本把其我们想让其链接到0xd0024000代码实际运行在0xd0020010,但是被链接到0xd0原创 2017-11-18 11:07:11 · 906 阅读 · 0 评论 -
从零开始基于S5PV210的嵌入式时钟系统的分析
从零开始基于S5PV210的嵌入式时钟系统的分析 --参考朱有鹏ARM裸机教程(2)SOC内部有很多器件,比如CPU、串口、DRAM控制器,GPIO等内部外设这些东西要彼此协同工作,需要一个共同的时钟系统来指挥。这些就是我们SOC的时钟系统。2、原创 2017-11-20 21:45:21 · 551 阅读 · 0 评论 -
基于S5PV210的串口通信的实战
基于S5PV210的串口通信的实战 ---参考朱有鹏ARM裸机课程1、串口的程序的流程的分析过程整个串口通信相关的程序包括2个部分:uart_init负责初始化串口uart_putc负责发送一个字节的数据。整个过程中我们需要编写的函数有三个函数:(1)串口的初始化函数uart_init(); //为什么我们需要编写这样的一个函数,因为每一个IO口基本原创 2017-12-10 09:29:12 · 931 阅读 · 0 评论 -
串口通信的基本知识
串口通信的基本知识 --参考朱有鹏ARM裸机编程目标:我们要把printf函数是怎么移植到嵌入式系统当中的。1、通信的历史:(1)最早的通信:烽火台,狼烟,信件:有文字的出现。电子通信,电报,网络信号。他传递是就是0或者1(2)通信中最重要的两个部分:信息表示、解析方法原创 2017-12-01 21:05:43 · 597 阅读 · 0 评论 -
按照S5PV210的官方手册使用C语言配置系统时钟--实例分析
按照S5PV210的官方手册使用C语言配置系统时钟原创 2017-11-25 19:34:17 · 584 阅读 · 0 评论 -
基于S5PV210的中断和外部按键中断
基于S5PV210的中断和外部按键中断 --参考朱有鹏ARM裸机课堂1、什么是中断?中断的目的就是为了处理更加重要的事情和任务。并行的处理事情,单核的CPU在微观上是无法实现并行的,只能实现宏观的并行。2、SOC对中断的实现机制:异常向量表;为什原创 2017-12-23 16:45:36 · 514 阅读 · 0 评论 -
中断向量控制器和中断处理的主要寄存器2
中断向量控制器和中断处理的主要寄存器--参考朱有鹏ARM裸机1、异常处理的2个阶段可以将异常处理分为2个阶段来理解,第一阶段是异常向量表跳转第二阶段就是进入了真正的异常处理程序irq_handler之后的部分。2、中断处理的第一阶段处理(1)第一个阶段之所以能够进行,主要依赖于CPU设计的提供的异常向量表机制第一阶段的主要任务是从异常发生到响应异常并且保存、恢复原创 2017-12-23 17:45:09 · 2498 阅读 · 0 评论 -
基于S5PV210的中断处理的过程和代码分析
基于S5PV210的中断处理的过程和代码分析--参考朱有鹏ARM裸机教程1、中断流程梳理:第一部分:我们为中断响应做的预备功能:1、初始化中断控制器2、绑定好写的ISR到中断控制器3、相应的中断所有的条件使能第二部分:当硬件产生中断后是如何执行ISR的?1、第一步:经过异常向量表跳转入IRQ入口2、第二步:做中断的现场保护,然后跳入ISR_handler原创 2017-12-24 21:16:08 · 913 阅读 · 0 评论 -
S5PV210的定时器概述和基础知识总结
S5PV210的定时器概述和基础知识总结--参考朱有鹏ARM裸机编程1、什么是定时器?(1)定时器是SOC中常见的外设。(2)定时器是由计数器演变而来的,计数的个数*计数一个需要的时间= 定时的时间2、定时器有什么用?定时器可以让我们的SOC在执行主程序的同时,通过定时器具有一个计数的功能。到了一定的时间后,也就是我们计时结束后,从而去执行预先设定好的事原创 2017-12-31 20:34:50 · 1049 阅读 · 0 评论 -
S5PV210的定时器程序模块程序
S5PV210的定时器程序模块程序 --参考朱有鹏ARM裸机程序1、PWM定时器的初始化:步奏分析:(1)因为我们是输出PWM波,所以需要将需要的GPIO口设置成PWM模式:(2)根据上一篇博客说明的,我们需要知道驱动我们的PWM波的频率到底是多大,所以我们需要配置我们的两个分频器(3)接着,是PWM波的关键寄存器:rTCNTB2 = 250;原创 2017-12-31 20:58:02 · 484 阅读 · 0 评论 -
NANDFLASH外设的理论知识
NANDFLASH外设的理论知识---参考朱有鹏ARM裸机课堂1、什么是NANDFLASH?NANDFLASH存储器是flash存储器的一种,用来存储。被封装成各种U盘等器件。2、nandflash的功能框图?(1)nand的结构可以看成一个矩阵式存储器,其中被分成一个一个的小块,每一个小块都可以存储一个bit位,然后彼此以一定的单位组合成整个NAND。(2)从原创 2018-01-13 18:21:57 · 388 阅读 · 0 评论 -
NANDFLASH的关键的三个驱动函数
NANDFLASH的关键的三个驱动函数 --参考朱有鹏ARM裸机1、NANDFLASH的关键的三个驱动函数:(1)NANDFLASH 的檫除的函数(2)NANDFLASH 的编程的函数,也就是往里面写东西(3)NANDFLASH 的读的函数,也就是往里面读数据2、读的函数和檫除的函数:unsigned char nand_原创 2018-01-13 20:30:50 · 881 阅读 · 0 评论 -
用汇编语言实现在210实现流水灯
用汇编语言实现在210实现流水灯 ---参考朱有鹏ARM裸机编程1、Makefile的解释(1)首先简单的解释一下这个的Makefile目标文件:led.bin:依赖的文件led.o也就是led.bin不存在的时候,或者led.o更新的时候,会执行这个Makefile那么就执行后面的命令:原创 2017-10-22 16:31:39 · 4751 阅读 · 2 评论 -
汇编写启动代码之设置栈和调用C语言
汇编写启动代码之设置栈和调用C语言 --参考朱老师ARM裸机编程1、为什么汇编写启动代码之设置栈和调用C语言(1) C语言运行时:(环境runtime)需要一定的环境和条件,这些环境由汇编来提供。有些原创 2017-10-28 19:55:51 · 697 阅读 · 0 评论 -
学习ARM反汇编工具objdump和一个简单实例
学习ARM反汇编工具objdump和一个简单实例 --参考朱有鹏ARM裸机编程1、反汇编的原理&为什么需要反汇编arm-linux-objdump -D led.elf > led_elf.disobjdump是gcc工具链中的反汇原创 2017-10-28 10:09:14 · 17025 阅读 · 1 评论 -
从零开始的UART(基于S3C2440)
从零开始的UART(基于S3C2440)1、UART是什么?在介绍2440的UART控制器之前,我们首先来了解一下UART的原理UART:Universal Asynchronous Receiver/Transmitter(通用异步收发送器),用来传输串行数据,发送数据时,CPU将并行数据写入UART,UART按照一定格式在TxD线上串行发出;接收数据时,UART原创 2017-06-22 16:19:56 · 1629 阅读 · 0 评论 -
使CPU运行的更快--Cache
使CPU运行的更快--Cache高速缓冲存储器Cache是位于CPU与内存之间的临时的存储器,它的容量比内存小但是交换速度快。在Cache中的数据是内存中的一小部分,但是这一小部分是CPU可以高速的访问的。1、源代码/* 2. 设置时钟 */ ldr r0, =0x4c000014 // mov r1, #0x03; // FCLK:HCLK:PCLK=原创 2017-06-22 22:20:16 · 1200 阅读 · 0 评论 -
从零开始的LED灯(基于嵌入式开发S3C2440)
从零开始的LED灯(基于嵌入式开发S3C2440)首先我们使用的是TQ2440开发板,嵌入式开发和单片机开发有些不一样,对于初学者来说,硬要将嵌入式的裸机开发说成单片机开发,我觉得是不当的,首先,大家都玩过51和STM32吧,首先他们的启动都是编译器帮你们写好了的吧,基本不需要写Makefile,51最简单了,点亮一盏灯,只需要看原理图就可以确定,哪个引脚需要配置成高电平或原创 2017-07-03 10:56:35 · 4049 阅读 · 0 评论 -
ARM裸机编程需要知道的汇编知识1---可编程逻辑器件
ARM裸机编程中的汇编语言知识 ---参考朱有鹏ARM裸机课程1、可编程的器件但是很多芯片都是不需要编程,比如很多开关电源的芯片。模拟就是用模拟的电平控制的,数字电平还分为CMOS电平和TTL电平。模拟器件 ---》 数字器件ASIC ---》 可编程器件ASIC:专用的芯片,硬编码原创 2017-09-23 11:32:58 · 481 阅读 · 0 评论 -
ARM裸机编程需要知道的汇编知识2---哈弗结构和冯诺依曼结构
ARM裸机编程需要知道的汇编知识2---哈弗结构和冯诺依曼结构 参考朱有鹏ARM裸机课程1、RISC和CISC的区别(1)CISC复杂指令集的设计理念就是用最少的指令完成一个复杂的任务, 比如原创 2017-09-23 17:59:55 · 578 阅读 · 0 评论 -
ARM裸机编程需要知道的知识3--寄存器
ARM裸机编程需要知道的知识3--寄存器 ---参考朱有鹏ARM裸机课程1、为什么软件可以操作硬件? 数电中以前可以通过一些IC,的引脚来形成一个个的计数器。可以做一个时钟。 单片机和嵌入式也可以做一个时钟,但不是通过硬件电路的改变,而是通过软件的编程。原创 2017-09-24 20:55:30 · 738 阅读 · 0 评论 -
ARM裸机从零开始的学习2---基础概念
ARM裸机从零开始的学习2---基础概念 ---参考朱有鹏ARM裸机全集1、嵌入式的系统的构成特点和演进方向(1)专用,软硬件可裁剪可配置(2)低功耗,高可靠性、高稳定性(3)软件代码短小精悍(4)代码可固化(代码可以烧录到固件里面去)(原创 2017-09-17 08:44:48 · 826 阅读 · 0 评论 -
ARM裸机从零开始的学习1--基础概念
ARM裸机从零开始的学习1--基础概念----参考朱有鹏的大讲台的视频课程以前也有学习过ARM的裸机,并写了几篇文章,但是今天想重新开始学习ARM的裸机,因为在移植UBOOT的时候,确实出现了一些问题,就是因为当初的ARM的裸机没有完全的学好,导致移植的时候出现了太多的问题。1、ARM发展史:前身为Acorn 艾康电脑,在1978年成立。1980原创 2017-09-10 12:09:41 · 2055 阅读 · 0 评论 -
从零开始的刷机(烧录系统到开发板)
从零开始的刷机(烧录系统到S5PV210开发板) --参考朱有鹏裸机课程1、什么是刷机?刷系统就是利用刷机工具,向开发板烧录预先编译好的系统镜像,使之在开发板上运行起来,你可以重新烧录并在最后烧写你最喜欢的操作系统。2、电脑和开发板怎么通信?(串口)串口是一种硬件的原创 2017-10-08 09:49:08 · 10320 阅读 · 0 评论 -
S5PV210-iROM-ApplicationNote-Preliminary的分析
S5PV210-iROM-ApplicationNote-Preliminary文件的分析 ---参考朱有鹏大讲坛信息原创 2017-10-01 18:15:54 · 633 阅读 · 0 评论 -
ARM编程的编程模式和一些概念理解的地方
ARM编程的编程模式和一些概念理解的地方 ---参考朱有鹏裸机编程1、ARM的编程模式和7种工作模式(1)ARM的基本设定 ARM采用的是32位的架构 ARM约定: BYTE:8bit, HalfWord:16bit,(2b原创 2017-10-02 19:11:35 · 533 阅读 · 0 评论 -
ARM的异常处理方式简单介绍
ARM的异常处理方式简单介绍---参考朱有鹏大讲坛1、什么是异常?正常工作之外的流程都叫做异常。异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续执行原来的工作。中断也是异常的一种。2、CPU 90%的情况都在用户态 它有可能在5种情况下都有可能进行异常的处理。 中断都是不可预知的。 也有一些异常的模式是我们不原创 2017-10-03 18:58:24 · 2429 阅读 · 0 评论 -
ARM汇编指令集1--需要的基础知识
ARM汇编指令集1--需要的基础知识 ---参考朱有鹏ARM裸机编程前言:学习的过程,就是一个先模仿,然后再进行创新的过程。 学习朱老师的课程,真的完全从0开始学习,以前有很多的地方真的并没有理解, 等全部学习完后再进行一次总结与感谢。1、指令与原创 2017-10-04 09:51:13 · 519 阅读 · 0 评论 -
ARM汇编指令集2 --常用的汇编指令
ARM汇编指令集2 --常用的汇编指令 ---参考朱有鹏大讲坛1、数据传输和跳转指令详解(1)数据传输指令 mov mvn(2)算术指令 add sub rsb adc sbc rsc(3原创 2017-10-04 16:09:29 · 535 阅读 · 0 评论 -
ARM汇编指令集3 --汇编伪指令
ARM汇编指令集3 --汇编伪指令 --参考朱有鹏裸机编程1、协处理器和协处理器指令详解什么是协处理器?协处理器的功能?(1)MCR & MRCMRC :用于读取CP15中的寄存器MCR: 用于写入CP15中的寄存器(2)什么是协处理器?1、SO原创 2017-10-05 18:45:37 · 478 阅读 · 1 评论 -
解决S5PV210的开发板使用SD卡下载,串口输出乱码的问题
解决S5PV210的开发板使用SD卡下载,串口输出乱码的问题学习了S5PV210的裸机开发也有一段时间了,一开始怎么都无法使用SD卡的下载,只能使用DNW进行下载,我使用的WIN10系统,就是不喜欢使用WIN7,开机太慢了,但是后面的课程需要使用SD卡下载才比较方便。所以花了一个下午解决了串口在SD卡下载过程中出现的乱码问题。1、问题描述:根据朱有鹏的ARM裸机课程中描述的,他原创 2018-01-07 18:29:53 · 1010 阅读 · 0 评论