0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

S3C6410学习笔记:Windows下搭建ARM11裸机开发环境

嵌入式那些事 来源:嵌入式那些事 2023-04-06 17:52 次阅读

之前写过文章,描述在Linux环境下搭建ARM11的开发环境,有需要的可以在ARM11标签中进行查找。

目前在学习ARM11的裸机编程,不想用虚拟机跑Linux来进行开发,因为平时用的笔记本电脑的配置跑虚拟机还是有点困难(我的台式机跑虚拟机还是没问题的),现在讲述一下如何在Windows中搭建ARM11的裸机开发环境,方便没法使用虚拟机的朋友也能够进行ARM11的开发。

系统环境:Windows 7 64位;

ARM11:Tiny6410;

1、交叉编译工具 - GNU Tools ARM Embedded

使用这个交叉编译工具就可以将程序编译成能在ARM11上运行的文件。这里将GNU Tools ARM Embedded的bin目录添加到系统的环境变量中,然后打开控制台输入:arm-none-eabi-gcc -v,查看环境变量配置是否成功,如果环境变量配置成功了,那么会正确的显示arm-none-eabi-gcc的版本号:

32df115e-d460-11ed-bfe3-dac502259ad0.png

3305bc78-d460-11ed-bfe3-dac502259ad0.png

2、MSYS

MSYS是一个小型的GNU环境,包括基本的bash,make等等。对裸机程序通过Makefile文件进行管理与编译,并且通过MSYS的make来执行Makefile文件的内容。

将msys/1.0/bin目录下的路径添加到系统的环境变量中,然后打开控制台输入:make -v,查看环境变量配置是否成功,如果环境变量配置成功了,那么会正确的显示make的版本号:

333a53f2-d460-11ed-bfe3-dac502259ad0.png

335e8ede-d460-11ed-bfe3-dac502259ad0.png

3、编译程序

start.S文件的内容如下:

/*
 *By:Ailson Jack
 *Date:2019.04.29
 *Des:汇编点亮LED <>
 *LED1~LED4对应GPK4~GPK7
 *Blog:www.only2fire.com
 */

.global _start

_start:
    // 把外设的基地址告诉CPU
    ldr r0, =0x70000000     //对于6410来说,内存(0x00000000~0x60000000),外设(0x70000000-0x7fffffff)
    orr r0, r0, #0x13       //外设大小:256M
    mcr p15,0,r0,c15,c2,4   //把r0的值(包括了外设基地址+外设大小)告诉cpu

    // 关看门狗,防止程序不断重启
    ldr r0, =0x7E004000     //看门狗控制寄存器
    mov r1, #0
    str r1, [r0]

    // 设置GPKCON0
    ldr r1, =0x7F008800
    ldr r0, =0x11110000     //GPK4,GPK5,GPK6,GPK7为输出模式
    str r0, [r1]

    mov r2, #0x1000
led_blink:
    // 设置GPKDAT,使GPK_4/5/6/7引脚输出低电平,LED亮
    ldr r1, =0x7F008808
    mov r0, #0
    str r0, [r1]

    // 延时
    bl delay

    // 设置GPKDAT,使GPK_4/5/6/7引脚输出高电平,LED灭
    ldr r1, =0x7F008808
    mov r0, #0xf0
    str r0, [r1]

    // 延时
    bl delay

    sub r2, r2, #1
    cmp r2,#0
    bne led_blink

halt:
    b halt

delay:
    mov r0, #0x1000000
delay_loop:
    cmp r0, #0
    sub r0, r0, #1
    bne delay_loop
    mov pc, lr /*子程序返回*/

Makefile文件的内容如下:

#By:AilsonJack
#Date:2019.05.01
#Des:Makefile文件
#Blog:www.only2fire.com
#备注:$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件

PREFIX = arm-none-eabi-
#PREFIX = arm-linux-

CC = $(PREFIX)gcc
LD = $(PREFIX)ld
OBJCOPY = $(PREFIX)objcopy
OBJDUMP = $(PREFIX)objdump

led.bin: start.o
 $(LD) -Ttext 0x50000000 -o led.elf $^
 $(OBJCOPY) -O binary led.elf led.bin
 $(OBJDUMP) -D led.elf >led_elf.dis

%.o:%.S
$(CC)-c-g$< -o $@

%.o : %.c
 $(CC) -c -g $< -o $@

clean:
 rm -rf *.o *.elf *.bin *.dis

在LED程序文件中,打开控制终端,然后执行make命令来编译LED程序:

33847b44-d460-11ed-bfe3-dac502259ad0.png

将编译好的led.bin文件通过友善之臂提供的MiniTools下载到ARM11板子中,就可以看到核心板的4个小灯在闪烁了。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8653

    浏览量

    361822
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206737
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32396
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27378

原文标题:S3C6410学习笔记-Windows下搭建ARM11裸机开发环境(1):工具安装

文章出处:【微信号:嵌入式那些事,微信公众号:嵌入式那些事】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARM11 S3c6410开发板+GPS模块 完美实现

    要求的嵌入式系统应用场合。 UT-S3C6410开发板是性能稳定、功能强大、高性价比的ARM11处理器开发板;专为消费类电子、工业控制、车载导航、人机界面、多媒体终端、POS机、行业P
    发表于 12-16 09:26

    ARM11存储空间的问题

    各位大虾好!最近在学习ARM,遇到一些问题无法解决,求帮助!我使用S3C6410,他的存储空间分为4个部分。有两个问题:1.静态存储区分为6块,其中Bank2,3可以使用NANDFLA
    发表于 05-18 21:31

    Jlink+RVDS单步调试 ARM11(S3C6410)裸奔程序

    作者:武汉华嵌嵌入式培训中心技术部开发平台:XP目标平台:S3c6410开发工具:RVDSJ-LINK(V8)一、搭建开发
    发表于 05-18 10:49

    三星三款主流处理器s3c2440\s3c6410\s5pv210对比分析

    9架构Ø S3C6410:属于ARM11架构Ø S5PV210:属于Cortex-A8架构根据ARM官方发布的一个架构趋势图,我们很明显看出三者的区别~随着时间的推移,
    发表于 05-18 12:38

    STM32 vs S3C6410学用哪个比较好

    本人正在学习ARM开发, 开始在淘宝上买了S3C6410ARM 11
    发表于 06-14 11:59

    飞凌嵌入式OK6410A硬件手册-Samsung ARM11 S3C6410

    简介:CPU:Samsung S3C6410处理器,ARM1176JZF-S内核,主频 :533MHz/667MHz内存 :标配256M字节DDR内存FLASH:SLC 1G NAND FLASH
    发表于 05-19 16:56

    S3C6410的JLink的调试方法--Samsung ARM11 S3C6410

    。Step3正确安装RDS2.2 后会出现两个调试器。AXD debugger v1.31 和Realview Debugger v1.8这里以AXD debugger 为例介绍JLink V8 的使用................S3C6410的JLink的调试方法下
    发表于 05-19 17:29

    【OK210试用体验】之三裸机开发环境搭建

    DDR中运行。 2.ADS1.2开发环境。跟RVDS差不多,NAND中烧写UBOOT或者EBOOT,编写c语言程序,jlink 载程序到DDR中运行。
    发表于 09-27 15:24

    S3C6410裸机开发教程及源代码

    `这是一个对于S3C6410比较全面的裸机开发教程,虽然是对应友善之臂的开发板,对于不是用友善之臂板子的也可以借鉴很多,看来友善之臂资料做得相当不错啊。下面是目录,可以看到内容很全面:
    发表于 12-22 09:30

    初步学习ARM11

    外挂flash设备和ram设备,然后ARM11通过存储控制器来操作这些设备。从图中就可以直观的看出区别了。对于S3C6410,因为内部没有存储器,所以需要将代码烧录到外挂的FLASH设备,这里
    发表于 12-10 18:08

    想知道I.MX6U和arm11 s3c6410 s3c2440等等几个处理器能力的比较关系, 这个问题简单,告诉别笑

    想知道I.MX6U和arm11 s3c6410 s3c2440等等几个处理器能力的比较关系,这个问题简单,告诉别笑
    发表于 12-24 18:29

    s3c6410 开发板设计

    S3C6410开发板采用核心板加底板设计,核心板上集成了Samsung 533/667M CPU S3C6410(ARM1176JZF-S内核)、128M Mobile DDR和256
    发表于 04-29 15:25 0次下载
    <b class='flag-5'>s3c6410</b> <b class='flag-5'>开发</b>板设计

    S3C6410ARM11)嵌入式控制系统液晶显示驱动问题研究

    S3C6410ARM11)嵌入式控制系统液晶显示驱动问题研究(嵌入式开发工程师工作内容)-S3C6410ARM11)嵌入式控制系统液晶显
    发表于 07-30 14:51 12次下载
    <b class='flag-5'>S3C6410</b>(<b class='flag-5'>ARM11</b>)嵌入式控制系统液晶显示驱动问题研究

    Windows搭建ARM11裸机开发环境:Eclipse创建工程

    上一篇文章介绍了在Windows搭建ARM11裸机开发环境,需要的朋友可以过去看看。
    的头像 发表于 04-08 09:36 690次阅读

    Windows搭建ARM11裸机开发环境:Eclipse+JLink调试代码

    之前,写过两篇文章,介绍了在Windows搭建ARM11裸机开发环境,以及使用Eclipse
    的头像 发表于 04-08 14:13 1264次阅读