start.S文件:
.globl _start
_start:
1、硬件相关的设置:把外设的基地址告诉CPU
0 ~ 0x6fff ffff为内存的地址空间,0x7000 0000 ~ 0x7fff ffff为外设寄存器的地址空间
//Peri port setup
ldr r0, =0x70000000
orr r0, r0, #0x13
mcr p15,0,r0,c15,c2,4 @ 256M(0x70000000-0x7fffffff)
2、关看门狗 ,往WTCON(0x7E004000)写0
ldr r0, =0x7E004000
mov r1, #0
str r1, [r0]
3、 设置栈,nand flash启动的时候,一上电硬件会强制性的把前8K的内容复制到内存里,
我们的程序比较小小于8K,所以可以把堆栈指针指向8K以外的空间即可,
只要那部分内存没有被使用既可以
在调用C函数之前必须设置栈,调用汇编函数之前不用设置栈
ldr sp, =8*1024 //栈地址设为片内内存
bl xxxxx //调用C函数
halt:
b halt
====================================================================
LED.c文件:
void delay()
{
volatile int i = 0x10000;
while (i--);
}
int xxxxx()
{
int i = 0;
volatile unsigned long *gpmcon = (volatile unsigned long *)0x7F008820;
volatile unsigned long *gpmdat = (volatile unsigned long *)0x7F008824;
*gpmcon = 0x1111; //设置 gpm0,1,2,3设为输出引脚
while (1)
{
*gpmdat = i;
i++;
if (i == 16)
i = 0;
delay();
}
return 0;
}
====================================================================
Makefile文件:
led.bin: start.o led.o
arm-linux-ld -Ttext 0 -o led.elf start.o led.o
arm-linux-objcopy -O binary led.elf led.bin
arm-linux-objdump -D led.elf > led.dis
start.o : start.S
arm-linux-gcc -o start.o start.S -c
led.o : led.c
arm-linux-gcc -o led.o led.c -c
clean:
rm *.o led.elf led.bin led.dis
上一篇:OK6410裸机学习第四天:4th_leds_params
下一篇:OK6410裸机学习第二天:2th_leds
推荐阅读
史海拾趣
Gems Sensors & Controls公司始终致力于技术创新和产品研发。数十年来,公司不断推出新型号的液位、流量和压力传感器、微型电磁阀及预装射流系统等产品,以满足客户日益多样化的需求。这些产品凭借其卓越的性能和稳定的质量,在行业内赢得了广泛的赞誉和认可,也推动了整个传感器行业的进步和发展。
2022年,C&K Switches公司被Littelfuse以5.4亿美元的企业价值收购。Littelfuse是一家工业技术制造公司,致力于打造一个可持续、互联和更安全的世界。两家公司在工业、通讯以及车载领域有着相近的市场布局和业务高度互补。收购完成后,C&K成为Littelfuse电子业务部门的一部分,双方共同为客户提供更全面的解决方案。这一收购不仅加强了C&K的市场地位,还为其未来的发展注入了新的活力和机遇。
随着产品技术的不断成熟和市场份额的逐步扩大,ESR公司开始将目光投向国际市场。公司积极参加国际电子展会和技术交流活动,与全球各地的客户和合作伙伴建立了广泛的联系。
同时,ESR公司还根据不同国家和地区的市场需求和法规要求,对产品线进行了针对性的调整和优化。通过本地化的营销策略和服务体系,公司成功打开了多个海外市场的大门,并赢得了当地客户的信任和支持。
Chipcon AS公司深知人才是企业发展的核心力量。因此,公司一直注重人才的引进和培养。通过与高校和研究机构建立合作关系,公司吸引了大量优秀的研发人才加入。同时,公司还建立了完善的培训体系,为员工提供了广阔的职业发展空间。这些措施使得Chipcon AS公司的研发实力不断增强,为公司的持续发展提供了有力保障。
进入XXXX年代,随着电子技术的飞速发展,Elytone公司意识到技术创新是企业持续发展的关键。公司投入大量资金引进先进设备和研发人才,成功开发出一系列具有竞争力的电子产品。这些产品在市场上获得了良好的口碑,为公司的快速发展奠定了坚实基础。
在电子行业竞争日益激烈的背景下,AMP公司面临着来自同行的巨大压力。为了应对这一挑战,公司进行了战略调整,将重心转向高端电子产品的研发和生产。通过不断提升产品性能和品质,AMP公司成功打造了多个高端品牌,并在细分市场中取得了显著优势。此外,公司还积极拓展新的应用领域,为未来发展奠定了坚实基础。
现在PCI数据线与CPLD相连,有一个功能是测速,首先用LAD0发一个控制信号,然后如入LAD[15..0]的数据。 由于LAD0需要双向,因此将LAD[15..0]都设为Bir(在顶层框图中)但是发现通过LAD0根本写入不了命令,不知为什么? 现在只能LAD0只作输入 其余1 ...… 查看全部问答∨ |
|
wince5.0中如何捕捉鼠标位置,实现全屏书写,实时显示书写的轨迹? wince5.0中如何捕捉鼠标位置,实现全屏书写,实时显示书写的轨迹?在自己建立的窗口中已经可以书写,显示轨迹了。但是出来自己创建的窗口就没办法书写了。困恼了很久了,高手、专家指点啊。最好能给点实例代码参考 邮箱echenxi@163.com … 查看全部问答∨ |
|
当比较器输入信号幅度过高的时候,输出方波会有一个上冲,输入信号幅度越大,上冲越厉害,曾经尝试过在输入与地之间加二极管钳位,但是效果不理想,求各位大牛的帮助… 查看全部问答∨ |
最近朋友让我给他弄一个市电检测电路,用在工业上的,要求在市电200V以上的时候输出一个脉冲,并且脉冲宽度在有限的时间内可调,各位大虾有没有做过类似电路的?望指点一二。以下是我个人设计的电路,在我个人的系统中测试的结果还算理想,经过几天 ...… 查看全部问答∨ |