开发环境
系统: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相关推荐

  1. 【嵌入式开发】LED 驱动 ( LED发光二极管原理 | 底板原理图分析 | 核心板原理图分析 | GPIO | 裸板程序烧写流程 )

    文章目录 开发板 的 LED 灯 作用 : 嵌入式软件的开发初期, 如 开发 BootLoader 代码 或者 Kernel 内核代码 过程中, 有效的调试方法有限, 此时通常使用 开发板上的 LED ...

  2. tiny4412裸板程序之点灯(一)

    最近折腾tiny4412开发板,先用裸板点个灯,玩一下裸板程序,后面打算移植最新的uboot和内核到tiny4412开发板上去. 原理图中,4个led用到的是GPM4_0 - GPM4_4. 看芯片手 ...

  3. TQ210——TFTP裸板程序下载

    TQ210--TFTP裸板程序下载 1. 直接下载u-boot.bin到内存运行(使用DNW中的的210USB启动下载),在DNW中输入命令可以直接查看修改u-boot.bin 2. 通过tftp下载 ...

  4. 第0课第2节_刚接触开发板之烧写裸板程序

    第0课第2节_刚接触开发板之烧写裸板程序 tftp用法 q //退出菜单 help tftp print //显示IP set ipaddr 192.168.31.203 //设置开发板IP set ...

  5. 2021-10-18使用eop烧写裸板程序

    安装串口驱动 使用串口软件MobaXterm->点Session->找到串口->选择串口->设置波特率115200->点击Advanced Serial setting- ...

  6. 使用eop烧写裸板程序步骤

    初次使用eop烧写裸板程序步骤 1.eop连接到PC. 2.安装驱动(若安装失败,则需要禁用驱动签名即可,步骤看我之前发布的文章). 3.安装App. 4.开发板连接eop,eop连接PC. 5.执行 ...

  7. s3c2440第一个裸奔程序——跑马灯(转)

    经过前段时间的准备,现在终于开始正式写ARM程序了.本着先易后难的原则,先写无操作系统的ARM裸奔程序,以便熟悉s3c2440的内部结构,此后再编写有操作系统的程序. 第一个程序就从最最简单的点亮开发 ...

  8. 在riscv sifive u740开发板上运行FreeRTOS及裸板程序

    riscv是当前比较火热的玩意,sifive的u740开发板是当前性能还不错的板子. sifive官方提供了一个SDK,https://github.com/sifive/freedom-e-sdk ...

  9. TQ2440串口裸板程序uart0

    开发环境 系统:ubuntu 10.04.4 单板:TQ2440 编译器:arm-linux-gcc-4.3.2 搭建开发环境详见ubuntu 10.04.4开发环境配置. 目标:实现tq2440 u ...

最新文章

  1. 亲身经历,在实验室不要乱按按钮!!
  2. Asp.net MVC 中Controller返回值类型ActionResult
  3. 华为ECS云服务器 Ubuntu 安装和配置FTP教程
  4. 单片机c语言编程要点,第1章单片机的C语言编程_2015要点.ppt
  5. java定时器只执行一次_搞定Java并发:为什么说只有1种实现线程的方法?(下)...
  6. Vue el-input实现动态显示type为textarea的文字数量、剩余字数
  7. Qt总结之二十:加载字体库
  8. PHP之SimpleXML函数
  9. CridView创建 实现选中,编辑,取消,删除
  10. 如何新建PDF文件?新建PDF文件教程来了
  11. 铜陵学院计算机程序设计大赛,ACM程序设计大赛
  12. 如何出售自己的代码并且不让人看到自己的源码?
  13. HTTP Status 400- Parameter conditions “username“ not met for actual request parameters:
  14. 01-Weakly supervised consistency
  15. 推广如何做网上引流?教你引流的底层逻辑
  16. 测角误差估计算法matlab,Harris角点检测 及 Matlab实验
  17. win 10找不到恢复环境怎么办?三种方法带你解决!
  18. 为什么 Redis 单线程却能支撑高并发?
  19. Vmware Ubuntu无法完成文件拖拽
  20. InfoGAN论文笔记+源码解析

热门文章

  1. 。免费词典 StarDict 星际译王 和 MDict
  2. java pkcs_用Java验证PKCS#7证书
  3. java pkcs7 和 pkcs5_PKCS7 / PKCS5 填充算法
  4. mp4格式视频因为录制到一半断电,导致损坏能修复
  5. ajax 分页 php,phpajax分页一_PHP教程
  6. VB6.0 google 地图显示GPS数据
  7. 【计算机视觉】张正友标定法相机标定
  8. itoa进制转换函数
  9. CLRS第十章思考题
  10. 基于小熊派的智慧农业