摘要: 接下来是为UBOOT增加驱动。 1) NOR FALSH: TQ2440的NOR FLASH和UBOOT源文件中用到的AM29LV800相似,只需在/include/configs/TQ2440.h里作一些改动即可。具体参考网上教程。 2) 网卡: 网卡DM9000的驱动在UBOOT中已自带,首先在/include/configs/TQ2440.h中注释掉原网卡CS8900的宏。 添加DM9000的宏,添加CONFIG_CMD_PING以支持PING命令。 添加CONFIG_ETHADDR、CONFIG_NETMASK、CONFIG_IPADDR、CONFIG_SERVERIP等宏来设置网络. 阅读全文
posted @ 2014-03-03 20:13 Ilmen 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 一. 代码修改 UBOOT从arch\arm\cpu\arm920t\start.s开始运行。 start.s主要负责设置CPU模式,初始化时钟、中断、看门狗、SDRAM,初始化堆栈等工作,并拷贝自己到内存中,然后从加载地址跳转到内存中的运行地址处,之后的就是C程序了。 首先修改时钟初始化代码,将start.s中原来的2410时钟初始化代码删除,增加一句 [bl clock_init]实现时钟初始化。 函数clock_init在文件boot_init.c中,此文件可以从TQ2440的UBOOT中拷贝过来放到board\samsung\TQ2440下,它包含了时钟初始化函数(clock_init 阅读全文
posted @ 2014-03-03 13:43 Ilmen 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 尽管TQ2440开发板已经自带了一个功能完善的UBOOT,但因为第一次接触UBOOT,还是希望自己能亲自动手移植一次,这样才有提高。 网上可以找到很多关于UBOOT在S3C2440上移植的教程,按着教程一步一步的做就能实现基本的移植。不过即便是按着教程做,也遇到了不少问题,需要自己解决。 这次移植UBOOT的主要目的是弄清楚UBOOT的基本结构,因此不关注对底层驱动的实现细节,代码从别处复制过来修改即可。现将大致步骤的总结一下:1.下载UBOOT 地址 ftp://ftp.denx.de/pub/u-boot/, 版本是2010.06。2.删除多余文件: 删除arch目录下除arm目录以外的. 阅读全文
posted @ 2014-03-02 23:39 Ilmen 阅读(1145) 评论(1) 推荐(0) 编辑
摘要: 今天在STM32上尝试了一下DFU功能。使用DFU需要准备PC上的软件DfuSe,驱动程序就在软件的安装目录下;另外还需要DFU固件的MDK的工程。 因为网上有很多图文教程,这里只说下大致的流程: 首先修改DFU工程文件,根据板子的情况修改上拉电阻的使能引脚,如果是12M的外部晶振还需要修改时钟的配置;同时,DFU模式是通过判断某一引脚(比如按键是否按下)来选择是否进入的,因此这个引脚也要根据板子的情况自定义。最后就是工程的Option里ROM起始地址及范围的设置(例如0x08000000和0x3000)。完成后就可以编译,烧到板子上了。 用户的程序也需要修改,打开项目,修改ROM的起始地址. 阅读全文
posted @ 2014-02-16 00:49 Ilmen 阅读(13359) 评论(2) 推荐(1) 编辑
摘要: 最近玩2440接触到了scatter文件,之前用STM32写代码时并没有关心过它,因为STM32的储存器结构比较简单,所以直接由MDK生成。 今天读了下ADS_LinkerGuide手册,现将一些心得总结一下。1. 关于IMAGE(映像)、Execution Region(执行域)、Load Region(加载域)、Output Section(输出段)、Input Section(输入段) 为了弄明白scatter文件,首先需要清楚这些基本概念。 IMAGE文件的结构由以下定义:包含的域和输出段的数量,当它们加载到存储器中时的地址,当IMAGE被执行时它们的地址。 域、输出段与输入段之间的. 阅读全文
posted @ 2013-12-02 03:23 Ilmen 阅读(3300) 评论(1) 推荐(2) 编辑
摘要: 前几天找同学借了TQ2440的开发板来玩,由于是第一次弄ARM9,理所当然从裸奔开始了。 MDK比较熟悉,但是ADS没用过,可是TQ2440光盘里的测试程序就是ADS下建立的工程。实在不想去折腾ADS,于是百度将这个工程移植到MDK下的方法。 经亲自测试,按以下步骤做可以成功在MDK下编译出bin文件。本人使用的MDK版本是4.72a。 第一步就是打开MDK,新建一个project,device选择Samsung -> S3C2440A。MDK提示是否自动添加启动代码,选择否,因为测试程序自带了启动代码2440init.s,并且更好。 第二步配置参数(Options for Target 阅读全文
posted @ 2013-11-30 22:14 Ilmen 阅读(720) 评论(0) 推荐(0) 编辑
摘要: 最近看了一本名为《解读“疯狂”》的书,http://book.douban.com/subject/2115948/,于是摘了一些内容:1.我们渴望为自己的人生做选择,但每一次选择都是读博,而用作骰子的就是我们肉身。并且,一旦自己的选择牵涉到了别人,那么可能被摔痛的就不止是自己,还有那个人。2.做自己人生的主宰,意味着要为自己的选择负责,要为自己遭遇的快了和痛苦负责,有时我们会因此而伤痕累累,会觉得累。但是,这一切快乐和痛苦都会延伸我们的人格力量,令我们感到自己可以掌握人生。用一个心理学术语来说,即增强了我们的自我效能感。3.勒庞对集体性按时进行描述说: “群体的基本特点就是将个人融入一种共. 阅读全文
posted @ 2013-11-30 21:12 Ilmen 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 最近想玩玩LINUX,于是双系统装了一个Ubuntu13.04。 在新系统下用着都还好,不过我自己DIY的USB DAC出了问题。在WIN7下能正常工作,但是在Ubuntu下就爆音不断,很明显是音频数据流断流引起的。 这说明stm32上的固件与Ubuntu的USB AUDIO驱动程序不太兼容,于是开始检查。在这个过程中,学到不少调试方法,下面详细描述下调试的过程: 1. 第一步需要确定USB DAC已经成功连接到PC,这里使用dmesg命令查看内核的信息。 USB DAC连接PC,输入命令: >> dmesg | tail [ 2148.890771] usb 1-1.2: Pro 阅读全文
posted @ 2013-11-30 20:56 Ilmen 阅读(3373) 评论(0) 推荐(0) 编辑
摘要: 如题,按照网上Win7 + Ubuntu硬盘安装的方法,在EasyBCD下配置好NeoGrub后,重启电脑,但是没有看到NeoGrub Bootloader启动项,直接进入Win7。 解决办法是,打开EasyBCD -> Manage Bootloader -> Write MBR。 阅读全文
posted @ 2013-11-06 12:37 Ilmen 阅读(1502) 评论(0) 推荐(0) 编辑
摘要: 最近在STM32做一个关于USB音频的应用,调试过程中一直被一个随机产生的HARD FAULT折磨。问题很奇怪,进入HARD FAULT的时间不定,可能连上USB后几秒就触发HARD FAULT,也可能程序跑几分钟甚至几十分钟才会触发。尽管感觉问题极有可能来自USB部分代码,但起初一直没有办法找到导致问题的代码,百度上搜素了一下,但是感觉对自己没什么启发。经过努力,最终找到了问题所在,同时也学到了新的东西,现在先介绍下调试过程。 首先在KEIL下进入DEBUG模式运行程序,待MCU"死掉"后停止,显然是卡在HARD FAULT的while(1)里面的。接下来打开FAULT 阅读全文
posted @ 2013-10-08 14:50 Ilmen 阅读(15957) 评论(1) 推荐(4) 编辑