TQ2440第一个裸板程序led
开发环境
系统:ubuntu 10.04.4
单板:tq2440
编译器:arm-linux-gcc-4.3.2
搭建开发环境详见ubuntu 10.04.4开发环境配置。
目标:实现tq2440单板上4个led灯闪烁
第一个程序很简单,用汇编实现。硬件如下:
nLED_1——>GPB5
nLED_2——>GPB6
nLED_3——>GPB7
nLED_4——>GPB8
根据s3c2440手册编写代码,包括2个文件1_led.s和Makefile.
一、编写源码
文件·1_led.s:
.text
.global _start
_start: ldr r0,=0x56000010mov r1,#0x00015400str r1,[r0]ldr r0,=0x56000014
loop: mov r1,#0x00000000str r1,[r0]bl delaymov r1,#0x00000ff0str r1,[r0]bl delayb loopdelay:mov r4,#100
del1: mov r5,#1000
del2: sub r5,r5,#1nopcmp r5,#1bne del2sub r4,r4,#1nopcmp r4,#1bne del1mov pc,lr
文件Makefile:
1_led.bin:1_led.sarm-linux-gcc -g -c -o 1_led.o 1_led.sarm-linux-ld -Ttext 0x00000000 -g 1_led.o -o 1_led_elfarm-linux-objcopy -O binary -S 1_led_elf 1_led.binarm-linux-objdump -D 1_led_elf > 1_led.dis
clean:rm -f 1_led.bin *.o 1_led_elf 1_led.dis
二、编译
change@change:~$ cd /home/change/Si/tq2440/1_led/
change@change:~/Si/tq2440/1_led$ make
arm-linux-gcc -g -c -o 1_led.o 1_led.s
arm-linux-ld -Ttext 0x00000000 -g 1_led.o -o 1_led_elf
arm-linux-objcopy -O binary -S 1_led_elf 1_led.bin
arm-linux-objdump -D 1_led_elf > 1_led.dis
change@change:~/Si/tq2440/1_led$ ls
1_led.bin 1_led.dis 1_led_elf 1_led.o 1_led.s Makefile
三、烧写、测试:
很多人电脑都没有并口或者openjtag编程器,这里介绍直接用u-boot烧写。前提是单板已有u-boot并且支持网卡。
我用NOR Flash里的u-boot烧写程序到NAND Flash,过程如下:
单板NOR Flash启动上电:
U-Boot 1.1.6 (Mar 24 2012 - 03:44:51)DRAM: 64 MB
Flash: 2 MB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
TQ2440 # printenv
bootargs=noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
bootdelay=3
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
ipaddr=192.168.1.111
serverip=192.168.1.110
netmask=255.255.255.0
bootcmd=nboot 0x30000000 0 0;bootm 0x30000000
tdin=serial
stdout=serial
stderr=serialEnvironment size: 477/131068 bytes
TQ2440 # set ipaddr 172.16.1.133
TQ2440 # set gatewayip 172.16.1.1
TQ2440 # set serverip 172.16.1.135
TQ2440 # ping 172.16.1.135
dm9000 i/o: 0x20000000, id: 0x90000a46
MAC: 00:80:00:80:00:80
could not establish link
host 172.16.1.135 is alive
TQ2440 # tftp 0x30000000 1_led.bin
dm9000 i/o: 0x20000000, id: 0x90000a46
MAC: 00:80:00:80:00:80
could not establish link
TFTP from server 172.16.1.135; our IP address is 172.16.1.133
Filename '1_led.bin'.
Load address: 0x30000000
Loading: #
done
Bytes transferred = 96 (60 hex)
TQ2440 # nand erase 0 0x40000NAND erase: device 0 offset 0x0, size 0x40000
Erasing at 0x20000 -- 100% complete.
OK
TQ2440 # nand write 0x30000000 0 0x40000NAND write: device 0 offset 0x0, size 0x40000262144 bytes written: OK
TQ2440 #
其中上面网卡参数设置根据自己的网关设定。
tq2440单板断电,拨到NAND Flash启动,上电4个LED灯即开始闪烁。
TQ2440第一个裸板程序led相关推荐
- 【嵌入式开发】LED 驱动 ( LED发光二极管原理 | 底板原理图分析 | 核心板原理图分析 | GPIO | 裸板程序烧写流程 )
文章目录 开发板 的 LED 灯 作用 : 嵌入式软件的开发初期, 如 开发 BootLoader 代码 或者 Kernel 内核代码 过程中, 有效的调试方法有限, 此时通常使用 开发板上的 LED ...
- tiny4412裸板程序之点灯(一)
最近折腾tiny4412开发板,先用裸板点个灯,玩一下裸板程序,后面打算移植最新的uboot和内核到tiny4412开发板上去. 原理图中,4个led用到的是GPM4_0 - GPM4_4. 看芯片手 ...
- TQ210——TFTP裸板程序下载
TQ210--TFTP裸板程序下载 1. 直接下载u-boot.bin到内存运行(使用DNW中的的210USB启动下载),在DNW中输入命令可以直接查看修改u-boot.bin 2. 通过tftp下载 ...
- 第0课第2节_刚接触开发板之烧写裸板程序
第0课第2节_刚接触开发板之烧写裸板程序 tftp用法 q //退出菜单 help tftp print //显示IP set ipaddr 192.168.31.203 //设置开发板IP set ...
- 2021-10-18使用eop烧写裸板程序
安装串口驱动 使用串口软件MobaXterm->点Session->找到串口->选择串口->设置波特率115200->点击Advanced Serial setting- ...
- 使用eop烧写裸板程序步骤
初次使用eop烧写裸板程序步骤 1.eop连接到PC. 2.安装驱动(若安装失败,则需要禁用驱动签名即可,步骤看我之前发布的文章). 3.安装App. 4.开发板连接eop,eop连接PC. 5.执行 ...
- s3c2440第一个裸奔程序——跑马灯(转)
经过前段时间的准备,现在终于开始正式写ARM程序了.本着先易后难的原则,先写无操作系统的ARM裸奔程序,以便熟悉s3c2440的内部结构,此后再编写有操作系统的程序. 第一个程序就从最最简单的点亮开发 ...
- 在riscv sifive u740开发板上运行FreeRTOS及裸板程序
riscv是当前比较火热的玩意,sifive的u740开发板是当前性能还不错的板子. sifive官方提供了一个SDK,https://github.com/sifive/freedom-e-sdk ...
- TQ2440串口裸板程序uart0
开发环境 系统:ubuntu 10.04.4 单板:TQ2440 编译器:arm-linux-gcc-4.3.2 搭建开发环境详见ubuntu 10.04.4开发环境配置. 目标:实现tq2440 u ...
最新文章
- 亲身经历,在实验室不要乱按按钮!!
- Asp.net MVC 中Controller返回值类型ActionResult
- 华为ECS云服务器 Ubuntu 安装和配置FTP教程
- 单片机c语言编程要点,第1章单片机的C语言编程_2015要点.ppt
- java定时器只执行一次_搞定Java并发:为什么说只有1种实现线程的方法?(下)...
- Vue el-input实现动态显示type为textarea的文字数量、剩余字数
- Qt总结之二十:加载字体库
- PHP之SimpleXML函数
- CridView创建 实现选中,编辑,取消,删除
- 如何新建PDF文件?新建PDF文件教程来了
- 铜陵学院计算机程序设计大赛,ACM程序设计大赛
- 如何出售自己的代码并且不让人看到自己的源码?
- HTTP Status 400- Parameter conditions “username“ not met for actual request parameters:
- 01-Weakly supervised consistency
- 推广如何做网上引流?教你引流的底层逻辑
- 测角误差估计算法matlab,Harris角点检测 及 Matlab实验
- win 10找不到恢复环境怎么办?三种方法带你解决!
- 为什么 Redis 单线程却能支撑高并发?
- Vmware Ubuntu无法完成文件拖拽
- InfoGAN论文笔记+源码解析