08 2012 档案
摘要:以下裸机程序基于GT2440,编译器为arm-linux-gcc-4.4.3。 程序结构:程序只有一个uart.S文件。 程序流程:首先上电复位,进入复位异常处理,关闭看门狗,初始化系统时钟(FCLK=400MHZ,HCLK=100MHZ,PCLK=50MHZ),初始化串口(无检验位,1位停止位,8位数据位,115200bps),最后跳到test_uart子程序,在该程序里不断等待用户输入数据(一个字节),如果用户输入了数据就跳到发送数据子程序,在子程序里将用户输入的数据+1后再发送给用户,此时用户可以在终端看到被+1了的数据。uart.S: 1 //寄存器物理地址宏定义 2...
阅读全文
摘要:以下裸机程序基于GT2440,编译器为arm-linux-gcc-4.4.3。 程序结构:程序由sdram.S和main.c两个文件组成,sdram.S文件完成一些初始化工作,如时钟初始化,内存控制器初始化,拷贝第二阶段代码到sdram等;main.c负责循环点亮、熄灭四个LED。 程序流程:上电时,cpu自动跳到复位异常向量入口,在复位异常处理里首先关闭看门狗,接着初始化系统时钟,初始化内存控制器,拷贝第二阶段代码到sdram,最后跳转到sdram里执行main()函数。sdram.S: 1 #define MEM_REG_START 0x48000000 2 #defi...
阅读全文
摘要:以下裸机程序基于GT2440,编译器为arm-linux-gcc-4.4.3。 程序布局:源代码由interrupt.S和led.c两个文件组成,interrupt负责初始化工作,led.c里定义了中断处理程序。 程序流程:首先安装异常向量表,在复位异常里关闭看门狗,然后进入普通中断模式,设置普通中断的栈指针(为C语言写的中断处理程序做准备),接着设为特权模式,初始化中断(设置IO管脚,开启中断),最后CPU一直死循环等待外部中断触发。当外部中断到来时,先保护现场,跳到led.c里的handle_irp()函数,在该函数里将四个LED点亮,接着返回,最后恢复现场,返回到死循环。int...
阅读全文
摘要:以下裸机程序基于GT2440,编译器为arm-linux-gcc-4.4.3。 程序的功能为:开机上电首先跳转到复位异常处理,在复位异常处理里关闭看门狗,然后执行LED控制程序,程序运行结果为板上4个LED全亮。led.S文件: 1 @寄存器物理地址宏定义 2 #define WTCON 0x53000000 3 #define GPBCON 0x56000010 4 #define GPBDAT 0x56000014 5 #define GPBUP 0x56000018 6 #define nGPB_OUTPUT ((1<<10)|(1<<12)|(1<<
阅读全文
摘要:上半个月在学习bootloader,突然找到了一个非常好的vboot,vboot只有最基本的内核引导功能(基于s3c2440,从nand flash启动),对其深入研究后,发现对bootloader有了比较全面的理解,虽然没有像uboot那么多功能,但vboot已经实现了bootloader最核心的功能,其他像什么网络功能、烧写功能等等也只是一些裸机驱动而已。学习bootloader需要有汇编的基础,如果有单片机编程经验的话那更是“如鱼得水”了。 先看vboot的整体架构,下面是vboot包含的所有文件:很简单是吧,其中核心的文件是head.S、main.c和nand.c,vboo...
阅读全文
摘要:最近重装了电脑,一开始时装了个最新版的Ubuntu12.04,发现unity界面真心不好用(不习惯),转回gnome界面又实在太丑了,于是想到了Linux Mint这个发行版本,装了最新版的Mint13,用了一会,感觉不错,给人一阵清新的感觉,桌面与windows比较类似,更重要的是Linux Mint是基于Ubuntu的。由于之前一直习惯用root登录,网上搜了一遍竟然没找到怎么用root登录的方法,于是经过一番研究,终于找到了方法,很简单,分享如下:在Menu--->控制中心,如下图:点击“登录窗口”图标,再点击“安全”项出现下图:勾选“允许本地系统管理员登录”即可。
阅读全文

浙公网安备 33010602011771号