#include "2410addr.h"
#include "2410lib.h"
#define ARM_ADDR 0x30000000 /拍乎*定义一个地址,应该是复位之后要跳转到的地址*/
void (*run)(void) /* 一个指针函数 */
void ARM9init(void)
void (CopeFromFlashToRM(U32 * FlashAddr.U32 *ArmAddr,U32 ul)
void copy(void)
void main(void)
{
run=(void(*)(void)) ARM_ADDR/* 从ARM_ADDR开始执行,遇到return返回继续下面的函数 */
ARM9init() /* 调用函数 */
copy()
run()
}
CopyFromFlashToRAM(U32 * pulFlashAddr,U32 *pulArmAddr,U32 ul)
/* 将长度为ul 的内容从pulFlashAddr copy 到 pulArmAddr */
{
U32 *pulSource=pulFlashAddr/* 参消贺判数1的数值传递给变量 */
U32 *pulDest=pulArmAddr
U32 i
ul/=4/* ul = ul/4,ul应该是要copy文件的长度 */
for(i=0i<uli++) /* 重复执行copy指令 */
{
*pulDest++=*pulSource++ /* 源地址的内容copy到目的地址 */
}
} /* CopyFromFlashToRAM 函数结束 */
copy(void)
{
U32 *p1
U32 *p2
p1=(U32 * )0x00200000 /* flash 地址拿改*/
p2=(U32 * )0x30000000 /* RAM 地址*/
CopyFromFlashRAM(p1,p2,0x20000)/* 将长度为0x20000 的内容从p1 copy 到 p2 */
}
1.首先,建立交叉编译环境:交叉编译是指:在PC机上编译,在目标板上执行,我PC是linux+ arm-elf-gcc编译器.扳子是ARM3000.板子上的系统是uclinux,这时一个剪裁的很小的实时嵌入式linux *** 作系统.推荐使用这个.2.然后就是你写程序喽,不过注意可能有些库函数不能用,因为哪个编译器稍微受限一点,不是所由的c库函数都支持,不过一般开发的都有.
3.连起你的主机和团孙开发板,这个你会不?要连两个:串口(用来控制板子)和以太口(用来下载程序),我们板子上这些外设都有,你要使没有可以用其他的口代替传程序,但串口可是该有的阿!
4.在你主机上编译程序生成目标代码,建议用makefile文件来组织你的联慧敬编关系.
5.把生成代码下载到目标板执行调试.我是用的主机的NFS(网落文件)服务,下载到目标板的.
6.注:目标板是怎么控制的呢?是用串口控制的,可用minicom,设置好你要控制的串口,也应该是你连板子的那个.在命令行里敲上minicom,即进入minicom截面,开启你的板子,应该就是板子uclinux系统解压安装前或慎的画面了.然后用ifconfig eth0.....
配置ip,这个ip就是你板子的ip了,注意与主机一个网段.然后mount -t nfs 主机ip:/uclinux /板子上的一个目录,就把主机的 uclinux目录放到板子上了(这么说其实不合理,应该叫挂载). 然后找到你刚才一经编译好的哪个目标代码执行即可.
因不了解你的具体环境和配置,暂说这些,有问题可再联系:)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)