在uboot显示图片的时候可以将jpg图片作为uboot的一段,在程序中访问该段,实现图片。

图片: logo.jpg ,将其拷贝到common下

  • 修改u-boot.lds,添加".log"段。(u-boot.lds的路径:arch/arm/cpu/godnet/u-boot.lds)
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
. = 0x00000000; . = ALIGN();
.text :
{
arch/arm/cpu/godnet/start.o (.text)
*(.text)
} . = ALIGN();
__logo_start = .;
.logo :
{
common/logo.o (.logo);
}
__logo_end = .; . = ALIGN();
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } . = ALIGN();
.data : { *(.data) } . = ALIGN();
.got : { *(.got) } __u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .; . = ALIGN();
__bss_start = .;
.bss : { *(.bss) }
_end = .;
}
  • 在common下添加logo.S文件,写入如下内容
.section .logo
.incbin "./logo.jpg"
  • 添加common/cmd_logo.c ,内容如下:

    #include <common.h>
    #include <command.h> extern unsigned int __logo_start;
    extern unsigned int __logo_end; int do_logo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
    { volatile char *p = (volatile char *)(&__logo_start);
    int i;
    unsigned int len = ; len = (unsigned int)&__logo_end - (unsigned int)&__logo_start; printf("__logo_start = %p\n", &__logo_start);
    printf("__logo_end = %p\n", &__logo_end);
    printf("logo size is %x\n", len); for (i = ; i < len; i++)
    {
    if(i % == )
    {
    printf("\n");
    } printf("%3x ", *p++&0xff);
    }
    printf("\n"); return ; } U_BOOT_CMD(
    logo, CONFIG_SYS_MAXARGS, , do_logo,
    "minimal test like /bin/sh",
    "[args..]"
    );
  • 修改common/Makefile,添加如下内容:
COBJS-y += cmd_logo.o
AOBJS-y += logo.o COBJS := $(sort $(COBJS-y))
AOBJS := $(sort $(AOBJS-y))
SRCS := $(AOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(AOBJS) $(COBJS))
  • 编译uboot

本例是将.logo段的图片数据读取并打印出来,显示图片不是重点。

最新文章

  1. MarkDown初体验
  2. PostgreSql常用脚本
  3. [转]Performance Analysis Using SQL Server 2008 Activity Monitor Tool
  4. Codeforces Round #279 (Div. 2) C. Hacking Cypher 前缀+后缀
  5. 在beforeAction里redirect无效,Yii2.0.8
  6. Silverlight中嵌套html、swf、pdf
  7. 对象创建型模式------Abstract Factory(抽象工厂)
  8. Bootstrap 使用清单组组件创建价格表
  9. 第 5 章 MySQL 备份与恢复
  10. Java实现 中文转换成Unicode编码 和 Unicode编码转换成中文
  11. re 模块 正则表达式
  12. 使用生成器把Kafka写入速度提高1000倍
  13. Dynamics CRM 日常使用JS整理(三)
  14. eclipse maven 打war包的几种方式
  15. Android makefile
  16. 如何获取Azure AD tenant的tenant Id?
  17. StanfordPOSTagger的用法
  18. 【XSY2707】snow 线段树 并查集
  19. 姿态角(Euler角):yaw pitch roll
  20. /dev/null与/dev/zero区别

热门文章

  1. dom 关键字提示
  2. 转】从源代码剖析Mahout推荐引擎
  3. 使用「max-height」实现自适应高度
  4. tomcat 粗略笔记
  5. postconf 命令常用参数
  6. gulp安装和使用简介
  7. javascript之冒泡算法
  8. 配置Outlook Anywhere2010
  9. 组合方法(ensemble method) 与adaboost提升方法
  10. BZOJ 1083: [SCOI2005]繁忙的都市 kruskal