自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (3)
  • 收藏
  • 关注

原创 makefile中的patsubst

1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的Makefilesrc=$(wildcar...

2017-10-28 22:14:37 539

原创 shell脚本记录

1. find -name *.o找出当前目录下所有的.o文件使用在makefile中如下clean: rm -f liblog.so `find -name \*.o`

2017-10-28 22:01:14 412

转载 对比S3C6410外部中断STM32外部中断

转自:http://comm.chinaaet.com/adi/blogdetail.aspx?id=40071&currentpage=2#aS3C6410外部中断中断在嵌入式里面是很常见的一个功能了。通过这个功能,可以让CPU减轻很多负担,不用不断的查询设备的状态。提高了CPU的效率。中断的过程如下:    中断源检测中断信号产生,然后将中断信号发送给中断控制器

2017-10-05 12:14:10 521

转载 S3C6410启动方式及启动流程

转自 S3C6410启动方式及启动流程 以 Tiny6410 为例,分析S3C6410启动方式及启动流程。S3C6410手册 03-SystemController:    Internal clocks will be generated using external clock source as illustrated in Table 3-1. The OM[4:0] pins

2017-10-04 22:01:59 731

原创 Linux启动打印信息

U-Boot 1.1.6 (Oct  5 2016 - 16:45:02) for SMDK6410******************************************    u-boot 1.1.6                    ****    Updated for OK6410  TE6410 Board  ****    Version (2

2016-11-10 20:42:37 3826

转载 原子操作分析

/* * ARMv6 UP and SMP safe atomic ops. We use load exclusive and * store exclusive to ensure that these are atomic. We may loop * to ensure that the update happens. */static inline void atomic_

2016-10-15 19:39:32 321

转载 rmmod: chdir(/lib/modules): No such file or directory 解决方法

使用rmmod会出现 rmmod : chdir(/lib/modules): No such file or directory ? 现在的内核模块在插入卸载时都会要转到 “/lib/modules/内核版本号/ ” 这个目录里。所以只要建立这个目录就行了。在目标板执行#mkdir -p /lib/modules/$(uname -r)较新版本的bus

2016-10-07 09:47:04 337

转载 linux-Centos 7下tftp-server服务的安装与配置

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为UDP的69号端口。TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的此协议设计的时候是进行小文件传

2016-10-01 21:57:00 4637 1

转载 #在宏中的用法

#define           STR(x)             #x #define           _STR(x)           STR(x) #define           x                        123 如果你这样用 STR(x);  如果这时x本身是一个宏, 那么展开会是"x", 而不是"123"   而如果是用 _STR(

2016-09-09 15:53:02 324

原创 OK6410_Uboot分析记录

2016-09-07 13:51:58 277

原创 uboot简化SI工程

OK6410国嵌提供的uboot移植代码。生成uboot.bin:1.在uboot目录下执行 make forlinx_nand_ram256_config2.在uboot目录下执行 make由于uboot下的文件太多,建立SI工程时只添加与OK6410开发板相关的代码:1.  uboot/cpu/s3c64xx目录下的文件2. uboot/cpu/s3c64xx/

2016-09-02 16:24:02 294

原创 【OK6410裸机程序】LCD驱动

1. 原理图及信号说明GPF14控制背光,GPE0控制LCD的开启和关闭。2. TFT_LCD显示原理3. 配置过程3.0 特殊配置3.1配置用到的IO口3.2设置LCD控制器的分辨率,时间参数,信号极性等。3.3分配显存并告知LCD控制器3.4设置颜色格式。

2016-08-31 09:03:48 689

原创 【OK6410裸机程序】按键中断

1. 中断也是一种异常,可以出发FIQ或IRQ异常。OK6410提供64个中断源,其中INT_EINT0~4是由外部信号触发的中断,其它都是由芯片内部信号触发的中断。2. 外部触发中断,OK6410提供127个外部中断源,共划分为10组,其中第0组最受重视,在VIC中分配的5个外部中断源中的分配如下:Group0的IO口占用的VIC中的4个中断源,而Group1--Group9

2016-08-28 10:27:54 1493

原创 【OK6410裸机程序】异常处理

1. 寄存器与工作模式ARM可工作在7种不同的工作模式。异常模式下有各自的分组寄存器。CPSR寄存器,控制工作模式,中断开关,以及标志位指示。工作模式对应表。2. 异常向量表异常向量表的代码实现,nop部分需要用实际的异常处理代码替代。.text.global _start_start: b reset

2016-08-26 10:21:33 773

原创 【OK6410裸机程序】NAND Flash

这里先转载一篇很详细的博文:OK6410裸机简单的NANDFLASH读写及擦除NAND FLASH(K9GAG08U0D)主的存储器主要有2部分组成:页(Page)、块(Block)。●    每页大小为:(4K+218)字节,4K用来存储数据,218字节主要用于存储控制信息。如图1.2,每页末尾都有218字节的额外空间,主要是为了便于管理每一页。Eg,使用这218位中

2016-08-22 16:51:38 795

转载 【OK6410裸机程序】DDR始化

转自 http://blog.csdn.net/mcudoc/article/details/8758222#一、DDR的容量     我们在DDR芯片资料上的开头都会标明DDR的容量:如我手上的OK6410A的DDR(K4X1G163PC),它的芯片资料上写的是64M x16 Mobile-DDR SDRAM。但是厂家跟说ok6410a有128M的容量。看到这里不禁就个疑

2016-08-18 09:12:08 401

原创 DDR协议解析

DRAM内部分割成多个L-Bank,每个L-Bank形状相同,彼此独立,可以独立工作。早期的DRAM芯片内部分为2个L-Bank,后来是4个,DDR3内存芯片为8个。在进行寻址时需要先确定是哪个L-Bank,然后再在这个选定的L-Bank中选择相应的行与列进行寻址。对内存的访问,一次只能是一个L-Bank,而每次与CPU交换的数据就是 L-Bank 存储阵列中一个“存储单元”的容量。SDRAM内存

2016-08-14 14:22:12 22255

原创 【OK6410裸机程序】移植printf和scanf

参考:1.通过串口实现printf和scanf函数  2.【OK6410裸机程序】串口初始化1. 源码在学c语言的时候,经典的hello world程序,是通过printf函数实现了。有了这个函数,就可以随意的向屏幕打印数据了。在嵌入式中,其实也是可以用printf函数的,不过需要稍微麻烦点的移植。毕竟,在嵌入式中,所有实现的都要自己来弄,不在向PC程序开发一样,很多库函数

2016-08-13 16:56:10 1702

转载 通过串口实现printf和scanf函数

转自  草根老师博客(程姚根)在做裸板开发时,常常需要通过输出或者通过串口输入一些信息。在有操作系统机器上,我们很少关心输入和输出的问题。因为有很多现成的库函数供我们调用。在做裸板开发时,可没有现成库函数供我们调用,一切都需要我们自己实现。下面我们通过串口在裸板上实现一个printf和scanf函数。printf主要用来进行格式化输出,sca

2016-08-13 16:16:11 5824

原创 【OK6410裸机程序】串口初始化

/************UART.c********************************************/#define ULCON0 (*((volatile unsigned long *)0x7F005000))#define UCON0 (*((volatile unsigned long *)0x7F005004))#define UFCON0

2016-08-13 12:43:26 697

原创 【OK6410裸机程序】时钟初始化

#define APLL_LOCK (*((volatile unsigned long *)0x7E00F000))#define MPLL_LOCK (*((volatile unsigned long *)0x7E00F004))#define EPLL_LOCK (*((volatile unsigned long *)0x7E00F008))#define OTHERS (

2016-08-11 20:32:38 580

原创 反汇编代码分析

1.这里直接给出反汇编代码,对应的汇编代码见 【OK6410裸机程序】点亮LEDarm-linux-objdump -D -S led.elf  > led.dis-D ,--disassemlbe-all  Display assembler contents of all sections-S, --source Intermix source code with disassem

2016-08-08 20:56:46 1124

原创 OK6410看门狗

1. 工作原理t_watchdog = 1/( PCLK / (Prescaler value + 1) / Division_factor )WTCNT在t_watchdog时钟向下技术,技术到0则产生中断和复位信号。复位后WTCNT自动载入WTDAT的值。2. 相关寄存器及初值WTCON相关位功能描述:可以看出上电后看门狗是打开的,而且复位信号的产生也是使能的。所以裸机

2016-08-08 19:56:38 326

原创 CP15协处理器访问指令MCR/MRC解析

ARM11协处理器从CP0到CP15, 其中CP15位系统控制协处理器。功能如下:• overall system control and configuration• cache configuration and management• Tightly-Coupled Memory (TCM) configuration and management• Memory M

2016-08-08 10:31:22 855

原创 【OK6410裸机程序】点亮LED

.globl _start_start:/* 硬件相关的设置 */    /* Peri port setup */    ldr r0, =0x70000000    orr r0, r0, #0x13    mcr p15,0,r0,c15,c2,4       @ 256M(0x70000000-0x7fffffff)    /* 关看门狗 *//

2016-08-07 21:04:31 1020 5

原创 CentOS7 安装arm-linux-gdb-7.5

1.直接 ./build-all 会报错2. 解决方法:yum install texinfo

2016-08-07 12:30:32 752

转载 DNW for CentOS7

原文转自 http://blog.csdn.net/david_xtd/article/details/26088299最近跟着国嵌的课程玩OK6410,国嵌用的是红帽企业版6,我自己硬盘装的CentOS7,发现国嵌的dnw用不了,在网上找到这个,可以用。1. dnw由两部分构成:USB驱动和下载工具,USB驱动便是secbulk文件夹,下载工具是DNW文件夹

2016-08-06 17:15:22 654

转载 Makefile的origin 函数

转自:http://blog.chinaunix.net/uid-22028680-id-3054167.htmlorigin 函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量。其语法是:$(origin VAR),其中VAR为变量的名字,而不是引用,所以一般没有 $ 字符在前。origin 函数通过返回值来告诉你 的出生情况。下面用实例说明:

2015-12-22 21:11:55 462

原创 uc/os-ii信号量集

在实际应用中,任务常常需要与多个事件同步,即要根据多个信号量组合作用的结果来决定任务的运行方式。μC/OS-II为了实现多个信号量组合的功能定义了一种特殊的数据结构——信号量集。

2015-07-04 10:00:32 661

原创 uc/os-ii消息队列

使用消息队列可以在任务之间传递多条消息。消息队列由三个部分组成:事件控制块、消息队列和消息。 消息队列的数据结构如下图所示。从图中可以看到,消息队列相当于一个共用一个任务等待列表的消息邮箱数组,事件控制块成员OSEventPtr指向了一个叫做队列控制块(OS_Q)的结构,该结构管理了一个数组MsgTbl[ ],该数组中的元素都是一些指向消息的指针。

2015-07-03 16:59:36 707

原创 uc/os-ii消息邮箱

消息邮箱是一种通信机制,它能使任务或中断服务向另一个任务发送一个指针型的变量,这个指针指向一个包含指定“消息”的数据结构。消息邮箱发送的不是消息本身,而是消息的地址指针。 使用消息邮箱之前,必须先建立消息邮箱,并且要指定指针的初始值。一般情况下,这个初始值是NULL,但也可以在初始化时,就使其在最开始就包含一条消息。    消息邮箱主要用于两种目的:① 通知一个事件的发生;② 作二值信号量用。

2015-07-03 13:20:14 832

原创 uc/os-ii互斥型信号量

互斥信号量(Mutual Exclusion Semaphores)也称为Mutex,用于实现对共享资源的独占处理,互斥信号量也是一个二值信号量,利用它可以降解优先级反转问题。

2015-07-03 10:06:35 1729

原创 uc/os-ii信号量

信号量有两种类型:一种是只有0和1两种值的信号量,称为二值信号量;另一种是可以有多种值的信号量,称为计数式信号量。计数式信号量的值的大小取决于信号量的数据类型,如若是8位整型变量,则其值可以是0~255;若是16位整型变量,则其值可以是0~65 535。    µC/OS-Ⅱ的信号量由两个部分组成:一个是信号量的计数值,范围是0~65 535;另一个是由等待该信号量的任务组成的等待任务列表。

2015-07-02 20:28:03 530

原创 uc/os-ii事件控制块

任务间的同步依赖于任务间的通信。在μC/OS-II中,使用信号量、互斥信号量、消息邮箱、消息队列、事件标志组这些被称作事件的中间环节来实现任务之间的通信的。为了把描述事件的数据结构统一起来,μC/OS-II使用叫做事件控制块ECB的数据结构来描述诸如信号量、互斥信号量、消息邮箱、消息队列、事件标志组这些事件。

2015-07-02 16:21:20 751

原创 uc/os-ii任务延时

μC/OS-Ⅱ的任务是一个无限循环,由于μC/OS-Ⅱ是可剥夺型内核,如果高优先级任务不主动挂起,低优先级任务就永远无法取得运行权,最高优先级任务将独占CPU的使用权。因此,μC/OS-Ⅱ规定:除了永不挂起的空闲任务外,其它所有的任务都要在合适的时候调用系统服务函数,自我挂起,暂时放弃CPU使用权,使低优先权任务能够得以运行。

2015-07-02 13:58:37 1345

原创 uc/os-ii任务的挂起与恢复

任务挂起函数OSTaskSuspend()无条件挂起一个任务,它必须和任务恢复函数OSTaskResume()成对出现。任务一旦被挂起,被挂起的任务就只能通过其它任务调用OSTaskResume()函数来恢复。

2015-07-01 15:29:51 725

原创 uc/os-ii删除任务

uC/OS-II中与删除任务相关的函数有两个,删除任务函数OSTaskDel() 和请求删除任务函数OSTaskDelReq() 。

2015-07-01 14:34:33 696

原创 uc/os-ii任务与任务管理

把一个大型任务分解成多个小任务,然后在计算机中通过运行这些小任务,最终达到完成大任务的目的。在μC/OS-II中,与上述那些小任务对应的程序实体就叫做“任务”(实质上是一个线程–有私有空间的任务叫做进程,没有私有空间的任务叫做线程),μC/OS-II就是一个能对这些小任务的运行进行管理和调度的多任务操作系统。

2015-07-01 10:59:36 547

原创 uc/os-ii统计任务

uC/OS-II定义了两个系统任务,空闲任务与统计任务。空闲任务OSTaskIdle()是μC/OS-Ⅱ必不可少的系统函数,当没有其它任务进入就绪态时,该任务立即转入运行态。空闲任务的优先级永远设为最低,即OS_LOWEST_PRIO,永远不被挂起,也不能被删除。

2015-06-30 21:27:32 1642

原创 uc/os-ii任务调度的锁定与解锁

调度器上锁函数OSSchedlock()的功能是用于禁止任务调度,使任务保持对CPU的控制权。调度器开锁函数OSSchedUnlock()的功能是解除对任务调度的禁止。 调度器上锁和开锁的实现原理是:对全局变量锁定嵌套计数器OSLockNesting进行操作,OSLockNesting跟踪OS SchedLock() 函数被调用的次数,允许嵌套深度达255层。

2015-06-30 16:15:03 7561 1

uart_stdio.rar

OK6410裸机UART代码,移植printf和scanf函数

2016-08-13

dnw_centos.rar

CentOS下的J-link驱动,用于Linux系统与OK6410开发板传输文件

2016-08-13

printf.rar

用于OK6410裸机开发移植printf和scanf函数的相关代码

2016-08-13

空空如也

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

TA关注的人

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