共2条
1/1 1 跳转至页
ARM 问一个以前问过的问题,一个很简单的ARM程序?
问
我想请问DX,用S3C4510B怎样设计一个LED闪烁程序(包括ARM的启动代码,生成可以下载到ARM上的文件的整个过程)。在网上抄了一个程序,不知道是不是完整的。
1、如果芯片商提供了BOOTLOADER,那么是不是就写下面的两个程序就可以实现LED闪烁?
2、还有就是我怎样保证程序运行在用户模式呢?
3、我怎样改变用户模式呢(通过软件,而不是靠异常中断)?
4、这个汇编程序能在下面的一个C程序一起实现吗(只想用一个C程序)?
5、程序怎样可以复制到SRAM中呢?
;**************************************************************
;汇编部分
;**************************************************************
IMPORT Main
AREA Ini,CODE,READONLY
ENTRY
LDR R0, =0x3FF0000
LDR R1, =0xE7FFFF80
STR R1, [R0]
LDR SP, =0x3FE1000 ;这个在BOOTLOADER没有初始化吗?BOOTLOADER
;究竟做了些什么呢?
BL Main
B .
END
//***************************************************************
//C语言程序
//***************************************************************
#define IOPMOD (*(volatile unsigned *)0x03FF5000) //IO port mode register
#define IOPDATA (*(volatile unsigned *)0x03FF5008) //IO port data register
void Delay(unsigned int);
int Main()
{
unsigned long LED;
IOPMOD=0xFFFFFFFF; //将IO口置为输出模式
IOPDATA=0x01;
for(;;){
LED=IOPDATA;
LED=(LED<<1);
IOPDATA=LED;
Delay(10);
if(!(IOPDATA&0x0F))
IOPDATA=0x01;
}
return(0);
}
void Delay(unsigned int x)
{
unsigned int i,j,k;
for(i=0;i<=x;i++)
for(j=0;j<0xff;j++)
for(k=0;k<0xff;k++);
}
答 1: 没有人在乎我们这些小虾吗? 帮帮忙吧????????? 答 2: 看来真的是没有人愿意出手了吗? 答 3: re我愿意出手,但是上面的程序直接烧到flash不会好用吧,我现在也是为ARM的初始化工作过程头痛呢? 答 4: 我出该出手时就出手啊,风风火火闯九洲啊 答 5: 可以看看这里周立功的ARM启动代码中有一个文件startup.s其中对你提出的问题会有点帮助。
1、如果芯片商提供了BOOTLOADER,那么是不是就写下面的两个程序就可以实现LED闪烁?
2、还有就是我怎样保证程序运行在用户模式呢?
3、我怎样改变用户模式呢(通过软件,而不是靠异常中断)?
4、这个汇编程序能在下面的一个C程序一起实现吗(只想用一个C程序)?
5、程序怎样可以复制到SRAM中呢?
;**************************************************************
;汇编部分
;**************************************************************
IMPORT Main
AREA Ini,CODE,READONLY
ENTRY
LDR R0, =0x3FF0000
LDR R1, =0xE7FFFF80
STR R1, [R0]
LDR SP, =0x3FE1000 ;这个在BOOTLOADER没有初始化吗?BOOTLOADER
;究竟做了些什么呢?
BL Main
B .
END
//***************************************************************
//C语言程序
//***************************************************************
#define IOPMOD (*(volatile unsigned *)0x03FF5000) //IO port mode register
#define IOPDATA (*(volatile unsigned *)0x03FF5008) //IO port data register
void Delay(unsigned int);
int Main()
{
unsigned long LED;
IOPMOD=0xFFFFFFFF; //将IO口置为输出模式
IOPDATA=0x01;
for(;;){
LED=IOPDATA;
LED=(LED<<1);
IOPDATA=LED;
Delay(10);
if(!(IOPDATA&0x0F))
IOPDATA=0x01;
}
return(0);
}
void Delay(unsigned int x)
{
unsigned int i,j,k;
for(i=0;i<=x;i++)
for(j=0;j<0xff;j++)
for(k=0;k<0xff;k++);
}
答 1: 没有人在乎我们这些小虾吗? 帮帮忙吧????????? 答 2: 看来真的是没有人愿意出手了吗? 答 3: re我愿意出手,但是上面的程序直接烧到flash不会好用吧,我现在也是为ARM的初始化工作过程头痛呢? 答 4: 我出该出手时就出手啊,风风火火闯九洲啊 答 5: 可以看看这里周立功的ARM启动代码中有一个文件startup.s其中对你提出的问题会有点帮助。
共2条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| window下生成compilecommands.json的的方法被打赏¥22元 | |
| 【S32K3XX】GPIO中断配置被打赏¥26元 | |
| 【分享开发笔记,赚取电动螺丝刀】WS2812B的RGB灯介绍以及驱动方法被打赏¥25元 | |
| PTC与NTC功能常规对比被打赏¥14元 | |
| 【S32K3XX】核间通信MU使用被打赏¥27元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于3pin锂电池接口的介绍/使用被打赏¥16元 | |
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
| 【分享开发笔记,赚取电动螺丝刀】树莓派5串口UART0配置被打赏¥25元 | |
| 【STM32F103ZET6】17:分享在Rtos项目中断管理的使用经验被打赏¥23元 | |
| 【STM32F103ZET6】16:分享在中断中恢复串口任务,遇到的问题被打赏¥31元 | |
我要赚赏金
