S3C44B0X 调试笔记.docx
- 文档编号:30509694
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:17
- 大小:1.40MB
S3C44B0X 调试笔记.docx
《S3C44B0X 调试笔记.docx》由会员分享,可在线阅读,更多相关《S3C44B0X 调试笔记.docx(17页珍藏版)》请在冰豆网上搜索。
S3C44B0X调试笔记
S3C44B0X调试笔记
开发板:
北京恒丰锐科科技有限公司HF44b0开发板
硬件规格:
1.SamsungS3C44B0X66MHz(ARM7内核)
2.8MSDRAM
3.2MFLASH
4.10M以太网接口
5.IDE接口
6.USB1.1接口
7.音频输出
8.MIC输入接口
9.时实时钟,备有可充电电池,方便您的使用。
10.IIC总线接口
11.实时系统时钟
12.LCD接口:
支持640*480以下单色或320*240以下STN/DSTN256色
13.2个RS232串行口
14.包括protel格式的原理图,有利您硬件的学习。
15.20针JTAG调试端口
16.1*4键盘
17.可扩展的总线接口,CPU的160个引脚全部用2.54标准插座引出
编程环境:
MDK5.13
仿真环境:
J-LINKV8固件版本4.90e
测试项目:
LCDucGUIFlash运行和RAM运行
测试LCD:
夏普LM8M64(640X240256色)
1.Flash运行测试
1)MDK的配置
/******************************************************************************/
/*FLASH.INI:
FlashInitializationFile*/
/******************************************************************************/
/*ThisfileispartoftheuVision/ARMdevelopmenttools.*/
/*Copyright(c)2005-2006KeilSoftware.Allrightsreserved.*/
/*Thissoftwaremayonlybeusedunderthetermsofavalid,current,*/
/*enduserlicencefromKEILforacompatibleversionofKEILsoftware*/
/*developmenttools.Nothingelsegivesyoutherighttousethissoftware.*/
/******************************************************************************/
_WDWORD(0x01D30000,0x00000000);//WTCON:
DisableWatchdog
_WDWORD(0x01C00000,0x00000001);//SYSCFG:
DisableCache
这里选择Flash的型号是AM29F160DB,实际型号是AM29LV160DB,但实际也好用.
2.Flash运行测试
1)MDK的配置
//***<< disalbe! WizardinContextMenu>>>*** FUNCvoidSetup(void) { _WWORD(0x1c00000,0x00000008);//SystemConfigurationSYSCFG _WWORD(0x01C80000,0x11119102);//BusWidth&WaitStatusControlBWSCON _WWORD(0x01C80004,0x00000600); _WWORD(0x01C80008,0x00007FFC); _WWORD(0x01C8000C,0x00007FFC); _WWORD(0x01C80010,0x00007FFC); _WWORD(0x01C80014,0x00007FFC); _WWORD(0x01C80018,0x00007FFC); _WWORD(0x01C8001C,0x00018000); _WWORD(0x01C80020,0x00018000); _WWORD(0x01C80024,0x00860459); _WWORD(0x01C80028,0x00000010); _WWORD(0x01C8002C,0x00000020); _WWORD(0x01C80030,0x00000020); // pc=0x0C001000; } //map0x01c00000,0x02000000readwrite LOAD./RAM/Hello.axfINCREMENTAL Setup();//SetupforRunning 帮用户解决空间不够时候看的一个资料,【转】过来整理一下供大家参考: RealViewMDK具有强大的编译、链接功能。 嵌入式设备拥有的资源往往有限,如果一个程序编译、链接之后的可执行文件大小略大于存储大小时,则不能生成可执行文件进行调试或固化到Flash中。 在这种情况下我们一般不去从硬件上调整存储空间的大小(有些存储空间在片内,实在无法调整),而是去修改程序,试图将程序简化、将缓存减小、减少全局变量、少用大数组多用指针等等人工方法,有些时候这些方法很有效。 但如果使用的开发工具是RealViewMDK,则有一系列方法,可以达到这一目的,比起手动方法只有过之而无不及。 这些方法仅仅需要在编译、链接之前对某些配置做一些修改即可,使用非常简单。 当然,如果将这些方法和人工修改程序的方法结合起来,效果更佳。 有时单独使用以下三种方法中的一种即可解决问题,有时需要结合其中两种,甚至三种才能解决问题。 下面以开发板EmbestATEB9200(采用的SOC 为AT91RM9200)的例程USARTPDC_test为例,由于片内SRAM空间比较小(大小为16KB,起始地址为0x200000),本例程在片内SRAM中进行调试时需要使用一些技巧,下面介绍如何使用这些方法。 在默认设置下,将例程USARTPDC_test选择在片上SRAM中调试时,编译通过、在链接时会提示以下错误信息提示空间不够: compilinginit.c... compilinginterrupt_Usart.c... compilingmain.c... linking... .\Int_RAM\USARTPDC_test.axf: Error: L6406W: Nospaceinexecutionregionswith.ANYselectormatchingSection.text(_scanf_int.o). .\Int_RAM\USARTPDC_test.axf: Error: L6406W: Nospaceinexecutionregionswith.ANYselectormatchingSection.text(_scanf_longlong.o). .\Int_RAM\USARTPDC_test.axf: Error: L6406W: Nospaceinexecutionregionswith.ANYselectormatchingSection.text(aeabi_sdiv.o). Targetnotcreated 一、使用微库 使用微库时,将以更精简短小的C库替代标准C库,减小代码大小,使用微库的方法如下: 打开Project->Options->Target,将UseMicroLIB前面的复选框勾上。 如下图: 图一 使用微库 点击确定之后,重新编译、链接。 发现还是会提示空间不够的错误信息,但错误信息明显比以前少了: Buildtarget'USARTPDC_testIntRAM' assemblingRM9200.s... compilinginit.c... compilinginterrupt_Usart.c... compilingmain.c... linking... .\Int_RAM\USARTPDC_test.axf: Error: L6406W: Nospaceinexecutionregionswith.ANYselectormatchingSection.text(interrupt_usart.o). .\Int_RAM\USARTPDC_test.axf: Error: L6406W: Nospaceinexecutionregionswith.ANYselectormatchingSectioni._printf_core(printf8.o). .\Int_RAM\USARTPDC_test.axf: Error: L6407W: Sectionsofaggregatesize 0x86c bytescouldnotfitinto.ANYselector(s). Targetnotcreated 二、修改链接脚本 修改链接脚本的方法有两种一种是直接修改分散加载文件,另一种是使用默认分散加载文件,这时仅需修改Project->Options->Target中的存储空间起始和大小。 为了简单直观,本例中使用后者。 在使用后者时,需要在Project->Options->Linker中将UseMemoryLayoutfromTargetDialog前面的复选框勾上。 如下图: 图二使用默认的分散加载文件 然后在Project->Options->Target中修改存储空间中只读部分和可读写部分的起始和大小,一般来说加大只读部分大小(该部分存放程序中的指令),而减小可读写部分的大小(该部分存放堆栈、局部变量等)。 根据错误提示可知,只读部分空间最少需要加大0x86c bytes,总空间固定16KB,相应地需要减小可读写部分大小。 修改之前如图一,修改后如下图: 图三 增大只读部分大小,减小可读写部分大小 点击确定之后,重新编译、链接: Buildtarget'USARTPDC_testIntRAM' assemblingRM9200.s... compilinginit.c... compilinginterrupt_Usart.c... compilingmain.c... linking... ProgramSize: Code=9388RO-data=380RW-data=4ZI-data=1244 ".\Int_RAM\USARTPDC_test.axf"-0Error(s),0Warning(s). 编译链接成功! 三、修改优化级别,着重对空间进行优化 在编译时着重对空间进行优化,让编译器自动减小代码大小。 可使用编译选项-Ospace进行编译以达到目的,另外可以选更高的选优化级别―-03如下图: 图四选较高优化级别针对空间进行优级化以减小代码大小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S3C44B0X 调试笔记 调试 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)