拜师求教rom移植工具?

如标题。MTK的原厂刷机包都是这样的,用flashtool线刷,和网上下载的ZIP卡刷包完全不同。
怎样移植coloros,请大神解答。感激。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
Lv5.逍遥游侠
你什么机型啊
Lv4.初涉江湖
你这包BOOT.IMG和SYSTEM.IMG都有了~解压开就可以了!
Lv3.拜师学艺
你什么机型啊
国产MTK平台机型,非品牌。想一直color
Lv3.拜师学艺
你这包BOOT.IMG和SYSTEM.IMG都有了~解压开就可以了!
请问改用什么软件解压呢?我用WINRAR解不开?
解压完移植之后再如何打包呢?
Lv3.拜师学艺
没有大神指导一下吗?
Lv3.拜师学艺
问题很复杂,大神都很忙。所以。
Lv3.拜师学艺
首先你要有一个可用的rec
Lv3.拜师学艺
看来解决起来不是那么容易啊
签到228人立即签到
请选择手机品牌
OPPO Find系列
OPPO N系列
OPPO R系列
OPPO其他机型
请选择手机型号
热帖排行榜
OPPO手机正式版下载
论坛明星用户友情提示:广告代码链接由广告商系统自动生成 请谨慎识别 (尤其提防低价手机及配件) 以免上当受骗
友情提示:非灌水区内灌水、胡乱回复帖子如:DDD、123等等这种回复将禁言处理!请尊重他人,珍惜自己的帐号!
查看: 1085|回复: 0
网友支持度1 度论坛参与币0 筐论坛英雄币0 箱在线时间99 小时
初级玩家(A级), 积分 411, 距离下一级还需 90 积分
TA的每日心情开心 08:16:56签到天数: 102 天[LV.6]常住居民II注册时间最后登录阅读权限20积分411帖子精华1UID2166352
note3自带的S搜索非常实用,不仅搜索索引详尽,而且搜索速度惊人,ui也很holo风格,我放到了s4的system/app里面,可以用,但是无法做到向Note3一样长按菜单键调出,不知如何能自己定制长按菜单键启动的程序呢?
帖子下面有S搜索的app,恳请高人指点,
喜欢S搜索的兄弟拿去放到system/app里面改好权限即可使用,顺便帮忙顶下,谢过!
有个rom实现了这个功能,完美,但是rom版本是较老mj9的,真心希望高手能授人以渔。
这个rom我上传到了网盘,可供参考
/s/1kT2rZz5
Powered by新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分1399 UID8930985阅读权限30积分1319帖子精华可用积分1319 专家积分0 在线时间1316 小时注册时间最后登录
家境小康, 积分 1319, 距离下一级还需 681 积分
帖子主题精华可用积分1319 专家积分0 在线时间1316 小时注册时间最后登录
论坛徽章:2
UBOOT1.6编译通过,昨天想在原来的PPCBOOT下面用TFTP到然后GO,结果就停在那个配置LINUX PARAMETERS了
今天干脆试着在PPCBOOT的基础上烧上去试一下,结果歇菜了——显示了SRAM 32M、FLASH 8M、IN SERIAL、OUT SERIAL、ERR SERIAL就不动了
TFTP功能也不行了,显示无法建立连接,想把内核拷过来也不能
木办法了,只好用JTAG烧回原来的PPCBOOT了,结果傻了眼——JTAG无法找到CPU,但是我想这个UBOOT有个显示,CPU应该没有问题吧...
现在起码说明网络设置有问题了——DM9000,在这把主要更改的/include/configs/smdk2410.h贴一下
#ifndef __CONFIG_H
#define __CONFIG_H
&* High Level Configuration Options
&* (easy to change)
#define CONFIG_ARM920T&&&&&&&&1&&&&/* This is an ARM920T Core&&&&*/
#define&&&&CONFIG_S3C2410&&&&&&&&1&&&&/* in a SAMSUNG S3C2410 SoC& &&&*/
#define CONFIG_SMDK2410&&&&&&&&1&&&&/* on a SAMSUNG SMDK2410 Board&&*/
/* input clock of PLL */
#define CONFIG_SYS_CLK_FREQ&&&&/* the SMDK2410 has 12MHz input clock */
#define USE_920T_MMU&&&&&&&&1
#undef CONFIG_USE_IRQ&&&&&&&&&&&&/* we don't need IRQ/FIQ stuff */
&* Size of malloc() pool
#define CFG_MALLOC_LEN&&&&&&&&(CFG_ENV_SIZE + 128*1024)
#define CFG_GBL_DATA_SIZE&&&&128&&&&/* size in bytes reserved for initial data */
&* Hardware drivers
#define CONFIG_DRIVER_DM9000&&&&1&&&&/* we have a CS8900 on-board */
#define CONFIG_DM9000_BASE&&&&&&&&0x
#define DM9000_IO CONFIG_DM9000_BASE
#define DM9000_DATA (CONFIG_DM9000_BASE+4)
#define DM9000_BUS16&&&&&&&&1 /* the Linux driver does accesses as shorts */
&* select serial console configuration
#define CONFIG_SERIAL1& && && & 1&&&&/* we use SERIAL 1 on SMDK2410 */
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
#define CONFIG_KGDB_BAUDRATE&&&&115200&&&&&&&&/* speed to run kgdb serial port */
/* what's this ? it's not used anywhere */
#define CONFIG_KGDB_SER_INDEX&&&&1&&&&&&&&/* which serial port to use */
/************************************************************
&************************************************************/
#define&&&&CONFIG_RTC_S3C24X0&&&&1
/* allow to overwrite serial and ethaddr */
#define CONFIG_ENV_OVERWRITE
#define CONFIG_BAUDRATE&&&&&&&&115200
/***********************************************************
&* Command definition
&***********************************************************/
#define CONFIG_COMMANDS \
&&&&&&&&&&&&(CONFIG_CMD_DFL&&&& | \
&&&&&&&&&&&&CFG_CMD_CACHE&&&& | \
&&&&&&&&&&&&/*CFG_CMD_NAND&&&& |*/ \
&&&&&&&&&&&&/*CFG_CMD_EEPROM |*/ \
&&&&&&&&&&&&/*CFG_CMD_I2C&&&& |*/ \
&&&&&&&&&&&&/*CFG_CMD_USB&&&& |*/ \
&&&&&&&&&&&&CFG_CMD_REGINFO&&| \
&&&&&&&&&&&&CFG_CMD_DATE&&&& | \
&&&&&&&&&&&&CFG_CMD_ELF)
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
#include &cmd_confdefs.h&
#define CONFIG_BOOTDELAY&&&&3
/*#define CONFIG_BOOTARGS& & &&&&&root=ramfs devfs=mount console=ttySA0,9600& */
#define CONFIG_ETHADDR&&&&&&&&08:00:3e:26:0a:5b
#define CONFIG_NETMASK& && && & 255.255.255.0
#define CONFIG_IPADDR&&&&&&&&192.168.2.222
#define CONFIG_SERVERIP&&&&&&&&192.168.2.111
#define CONFIG_GATEWAYIP&&&&192.168.2.1 //1.2.168.192
/*#define CONFIG_BOOTFILE&&&&&elinos-lart& */
/*#define CONFIG_BOOTCOMMAND&&&&& bootm& */
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
#define CONFIG_KGDB_BAUDRATE&&&&115200&&&&&&&&/* speed to run kgdb serial port */
/* what's this ? it's not used anywhere */
#define CONFIG_KGDB_SER_INDEX&&&&1&&&&&&&&/* which serial port to use */
&* Miscellaneous configurable options
#define&&&&CFG_LONGHELP&&&&&&&&&&&&&&&&/* undef to save memory&&&&&&&&*/
#define&&&&CFG_PROMPT&&&&&&&&&SMDK2410 # &&&&&/* Monitor Command Prompt&&&&*/
#define&&&&CFG_CBSIZE&&&&&&&&256&&&&&&&&/* Console I/O Buffer Size&&&&*/
#define&&&&CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
#define&&&&CFG_MAXARGS&&&&&&&&16&&&&&&&&/* max number of command args&&&&*/
#define CFG_BARGSIZE&&&&&&&&CFG_CBSIZE&&&&/* Boot Argument Buffer Size&&&&*/
#define CFG_MEMTEST_START&&&&0x&&&&/* memtest works on&&&&*/
#define CFG_MEMTEST_END&&&&&&&&0x31F00000&&&&/* 31 MB in DRAM&&&&*/
#undef&&CFG_CLKS_IN_HZ&&&&&&&&/* everything, incl board info, in Hz */
#define&&&&CFG_LOAD_ADDR&&&&&&&&0x&&&&/* default load address&&&&*/
/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
/* it to wrap 100 times (total 1562500) to get 1 sec. */
#define&&&&CFG_HZ&&&&&&&&&&&&1562500
/* valid baudrates */
#define CFG_BAUDRATE_TABLE&&&&{ 9600, 19200, 38400, 57600, 115200 }
/*-----------------------------------------------------------------------
&* Stack sizes
&* The stack sizes are set up in start.S using the settings below
#define CONFIG_STACKSIZE&&&&(128*1024)&&&&/* regular stack */
#ifdef CONFIG_USE_IRQ
#define CONFIG_STACKSIZE_IRQ&&&&(4*1024)&&&&/* IRQ stack */
#define CONFIG_STACKSIZE_FIQ&&&&(4*1024)&&&&/* FIQ stack */
/*-----------------------------------------------------------------------
&* Physical Memory Map
#define CONFIG_NR_DRAM_BANKS&&&&1&&&&& &/* we have 1 bank of DRAM */
#define PHYS_SDRAM_1&&&&&&&&0x /* SDRAM Bank #1 */
#define PHYS_SDRAM_1_SIZE&&&&0x /* 32 MB */
#define PHYS_FLASH_1&&&&&&&&0x /* Flash Bank #1 */
/*-----------------------------------------------------------------------
&* FLASH and environment organization
#define CONFIG_AMD_LV400&&&&1&&&&/* uncomment this if you have a LV400 flash */
#ifdef CONFIG_AMD_LV400
#define CFG_MAX_FLASH_BANKS&&&&1&&&&/* max number of memory banks */
#define PHYS_FLASH_SIZE&&&&&&&&0x /* 8MB */
#define CFG_MAX_FLASH_SECT&&&&(64)&&&&/* max number of sectors on one chip */
#define CFG_ENV_ADDR&&&&&&&&(CFG_FLASH_BASE + 0x020000) /* addr of environment */
#ifndef CFG_CMD_FLASH
#define CFG_CMD_FLASH&&&&1
#ifndef CFG_CMD_ENV
#define CFG_CMD_ENV&&&&1
#define CFG_FLASH_BASE&&&&nbspHYS_FLASH_1
#define CFG_FLASH_SIZE &&&&nbspHYS_FLASH_SIZE
#define CFG_FLASH_SECTOR_SIZE&&&&(CFG_FLASH_SIZE/CFG_MAX_FLASH_SECT)
/* timeout values are in ticks */
#define CFG_FLASH_ERASE_TOUT&&&&(5*CFG_HZ) /* Timeout for Flash Erase */
#define CFG_FLASH_WRITE_TOUT&&&&(5*CFG_HZ) /* Timeout for Flash Write */
#define&&&&CFG_ENV_IS_IN_FLASH&&&&1
#define CFG_ENV_SIZE&&&&&&&&0x10000&&&&/* Total Size of Environment Sector */
#undef CFG_ENV_SECT_SIZE
#endif&&&&/* __CONFIG_H */
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分1399 UID8930985阅读权限30积分1319帖子精华可用积分1319 专家积分0 在线时间1316 小时注册时间最后登录
家境小康, 积分 1319, 距离下一级还需 681 积分
帖子主题精华可用积分1319 专家积分0 在线时间1316 小时注册时间最后登录
论坛徽章:2
个人很奇怪,在原来的PPCBOOT里面SMDK2410.h里面还是定义的CS8900,而不是定义的DM9000,不过在DRIVERS下面MAKEFILE里面却生成了DM9000X,而没有生成CS8900。
在UBOOT 的主要C程序/lib_arm/board.c里面俺又看到要调用cs8900_get_enetaddr()这个函数,所以又查了一下,发现在dm9000x.c里面同样有这个函数,可能是作者偷懒没有改名字(?),同样在cs8900.c里面也有这个函数,两者不完全一样。我想可能就是根据不同的CONFIG_DRIVER来决定调用哪个函数吧。
请问大侠们到底可能是哪个地方出的问题嗫?
UBOOT基本没打印出什么信息来,除了SDRA、FLASH、SERIAL,然后就不动鸟~
曾有你的森林
空间积分802 信誉积分112 UID阅读权限20积分967帖子精华可用积分967 专家积分30 在线时间842 小时注册时间最后登录
丰衣足食, 积分 967, 距离下一级还需 33 积分
帖子主题精华可用积分967 专家积分30 在线时间842 小时注册时间最后登录
论坛徽章:0
你敢肯定你uboot移植没错吗?留意cpu频率设置、内存地址映射、内存参数设置。另,看来你这应该是norflash,uboot搬移代码时要留意这一点。
jtag找不到cpu。你是否用jtag代理软件,如果是,我倒是推荐h-jtag,看说明使用。找不到cpu是jtag代理软件的问题。
网卡先不急着搞,你要先确定的是uboot的基本部分能跑起来、能引导内核。另,不一定通过网络来烧内核和文件系统的吧,用串口也可以啊。
总评分:&可用积分 + 15&
曾有你的森林
空间积分802 信誉积分112 UID阅读权限20积分967帖子精华可用积分967 专家积分30 在线时间842 小时注册时间最后登录
丰衣足食, 积分 967, 距离下一级还需 33 积分
帖子主题精华可用积分967 专家积分30 在线时间842 小时注册时间最后登录
论坛徽章:0
原帖由 lxyscls 于
21:52 发表
个人很奇怪,在原来的PPCBOOT里面SMDK2410.h里面还是定义的CS8900,而不是定义的DM9000,不过在DRIVERS下面MAKEFILE里面却生成了DM9000X,而没有生成CS8900。
在UBOOT 的主要C程序/lib_arm/board.c里面俺又看到 ...
没用过ppcboot,不了解
uboot应该是某一步挂掉了,唯一的方法用printf来确定是哪一步出问题
曾有你的森林
空间积分802 信誉积分112 UID阅读权限20积分967帖子精华可用积分967 专家积分30 在线时间842 小时注册时间最后登录
丰衣足食, 积分 967, 距离下一级还需 33 积分
帖子主题精华可用积分967 专家积分30 在线时间842 小时注册时间最后登录
论坛徽章:0
UBOOT1.6编译通过,昨天想在原来的PPCBOOT下面用TFTP到然后GO
另,根据你这里的做法,我想你应该先了解一下映像的加载时域、运行时域的概念。可能一开始是晦涩难懂了一点,但你只要是同底层打交道的话,这些都需要了解的。以下是ads1.2的中文文档摘录:
3.1 指定映像结构
一个映像的结构可由以下方面进行定义:
l 它的连续区域和输出段的数目。
l 当映像被装载时这些区域和段在内存中的位置。
l 当映像被执行时这些区域和段在内存中的位置。
3.1.1 为目标文件和映像文件建立块
一个映像也是一个被存储的可执行文件,由映像,区域,输出段和输入段的层级形式构成。
l 每个映像由一个或多个区域构成,每个区域又由一个或多个段构成。
l 每个输出段包含一个或多个输出段。
l 输出段是目标文件中的代码和数据信息。
l 输入段:每个输入段包含代码或初始化数据,或者描述没有被初始化或在映像执行前必须初始化为0的的内存段。输入段可以有RO,RW,ZI三种属性。Armlink使用这些属性把多个输入段重组为更大的模块——输出段和域。
l 输出段:一个输出段是一系列连续的,具有相同属性(RO,RW,ZI)的输出段的组合。一个输出段与组成它的输入段具有相同的属性。在每个输出段内,输入段根据Section placement的规则进行排序。
l 域:每个域由1~3个输出段组成。域中的输出段根据其属性进行排序。首先是RO输出段,然后是RW输出段,最后是ZI输出段。每个域通常被映射为一个物理内存设备,如ROM,RAM或外设。
3.1.2 映像的装载与执行角度
当装载时,映像域被旋转在系统内存映射中。在执行一个映像前,你可能得要把其中的一些域移到它们的执行地址处并且需要建立ZI输出段。例如,初始化好的RW数据可能必须得从它在ROM中的装载地址处拷贝到RAM中的执行地址处。
3.1.3指定一个映像的内存映射
一个映像由任意多个域和输出段组成。每个域都有自己不同与其他域的装载和执行地址。为了建立映像的内存映射,armlink必须具有以下信息:
Grouping 输出段是如何被分配为输出段和域的。
Placement :映像域被定位于内存映射中的位置。
3.2放置段
第个输出段的基地址是由在连接器是指定的排序顺序决定的。当产生映像时,连接器按以下顺序对输入段进行排序:
l 按属性。
l 按输出段名称。
l 按它们在输入列表中的位置,除了-first,-last选项进行限定的项。默认情况下,连接器建立一个包括RO,RW的映像(或包括ZI输出段)。在系统具有内存管理硬件的系统中,RO输出段在运行时处于被保护状态,RO段也被放在目标板的ROM中。
第四章 获取映像符号
4.1 获得连接器预定义符号
连接器定义了一些包含$$的符号。这些符号及其他所有包含$$的名称都是ARM的保留字。这些符号被用于指定域的基地址,输出段的基地址和输入段的基地址及其大小。
你可以在你的汇编语言程序中引用这些符号地址,把它们用作可重定位的地址,也可能在C或C++代码中使用exern关键字来引用它们。
4.1.1与域相关的符号
当armlink生成映像时产生与域相关的符号。对每个包含ZI输出段执行域来说,armlink都产生包含了$$ZI$$的附加符号。
Load$$region_name$$Base& && && && &域的装载地址
Image$$region_name$$Base& && && &&&域的执行地址
Image$$region_name$$Length& && && && & 执行域的长度(4*字节)
Image$$region_name$$Limit& && && && && &超出执行域结尾的字节地址
Image$$region_name$$ZI$$Base& && && &在此域中ZI输出段的执行地址
Image$$region_name$$ZI$$Length& && &ZI输出段的长度(4*字节)
Image$$region_name$$ZI$$Limit& && &&&超出执行域中ZI输出段结尾的字节地址
在ZI域以上放置堆栈:stack和heap
通常使用与域相关的符号来在ZI域以上直接设置堆栈。请参考ADS Development Giude中有关ROM的章节。
4.1.2段相关的符号
一个简单的映像有三个输出段(RO,RW和ZI),这三个段产生三个执行域。对每个映像中的输入段,armlink都产生如下的输入符号:
Image$$RO$$Base& && &&&RO输出段的起始地址
Image$$RO$$Limit& && && && &&&超出RO输出段结尾的第一个字节地址
Image$$RW$$Base& && & RW输出段的起始地址
Image$$RW$$Limt& && &&&超出RW输出段结尾的第一个字节地址
Image$$ZI$$Base& && && &ZI输出段的起始地址
ARM连接器生成的符号
又发现一个不明白的地方:
|Image$$RO$$Limit|
|Image$$RW$$Base|
|Image$$ZI$$Base|
|Image$$ZI$$Limit|
这四个变量表示意思倒是能在注释中看到,但是找来找去,还愣是没有在一大堆文件中找到什么时候定义过这几个变量,最后不得不找Baidu了,结果如下:
ARM连接器定义了一些包含$$的符号。这些符号及其他所有包含$$的名称都是ARM的保留字。这些符号被用于指定域的基地址,输出段的基地址和输入段的基地址及其大小。
我们可以自己的汇编语言程序中引用这些符号地址,把它们用作可重定位的地址,也可能在C或C++代码中使用exern关键字来引用它们。
与域相关的符号
当armlink生成映像时产生与域相关的符号。对每个包含ZI输出段执行域来说,armlink都产生包含了$$ZI$$的附加符号。
Load$$region_name$$Base& && && && && &&&域的装载地址
Image$$region_name$$Base& && && && && & 域的执行地址
Image$$region_name$$Length& && && && & 执行域的长度(4*字节)
Image$$region_name$$Limit& && && && && &超出执行域结尾的字节地址
Image$$region_name$$ZI$$Base& && && & 在此域中ZI输出段的执行地址
Image$$region_name$$ZI$$Length& && &&&ZI输出段的长度(4*字节)
Image$$region_name$$ZI$$Limit& && && & 超出执行域中ZI输出段结尾的字节地址
在ZI域以上放置堆栈:stack和heap
通常使用与域相关的符号来在ZI域以上直接设置堆栈。请参考ADS Development Giude中有关ROM的章节。
段相关的符号
一个简单的映像有三个输出段(RO,RW和ZI),这三个段产生三个执行域。对每个映像中的输入段,armlink都产生如下的输入符号:
Image$$RO$$Base& && && && && &RO输出段的起始地址
Image$$RO$$Limit& && && && &&&超出RO输出段结尾的第一个字节地址
Image$$RW$$Base& && && && &&&RW输出段的起始地址
Image$$RW$$Limt& && && && &&&超出RW输出段结尾的第一个字节地址
Image$$ZI$$Base& && && && && & ZI输出段的起始地址
Image$$ZI$$Limit& && && &超出ZI输出段结尾的第一个字节地址
因为$在ARM汇编中有特殊的含义,所以在使用Image$$RO$$Base这样的符号时需要在两个竖线“|”之间来告诉汇编器这里的$$不用处理
ARM汇编器的内置变量
内置变量的设置不能用SETA,SETL或SETS等指示符来设置,只能用表达式或条件来设置.
& && &IF {ARCHITECTURE} = &4T&
--------------------------------------------------------------------------------
内置变量& && && && && && && && && && && &&&变量含义
--------------------------------------------------------------------------------
{PC}或.& && && && && && && && && && && && &当前指令的地址
--------------------------------------------------------------------------------
{VAR}或@& && && && && && && && && && &&&存储区位置计数器的当前值
--------------------------------------------------------------------------------
{TRUE}& && && && && && && && && && && && &逻辑常量真
--------------------------------------------------------------------------------
{FALSE}& && && && && && && && && && && &&&逻辑常量假
--------------------------------------------------------------------------------
{OPT}& && && && && && && && && && && && &&&当前设置列表选项值,OPT用来保存当前列表选
& && && && && && && && && && && && && && && & 项,改变选项值,恢复它的原始值
--------------------------------------------------------------------------------
{CONFIG}& && && && && && && && && && && &如果汇编器汇编ARM代码,则值为32;如果汇编器
& && && && && && && && && && && && && && && & 汇编Thumb代码,则值为16
--------------------------------------------------------------------------------
{ENDIAN}& && && && && && && && && && && &如果汇编器在大端模式下,则值为如果汇编器
& && && && && && && && && && && && && && && &&&在小端模式下,则值为little&&
--------------------------------------------------------------------------------
{CODESIZE}& && && && && && && && && && &如果汇编器汇编ARM代码,则值为32;如果汇编器
& && && && && && && && && && && && && && && &&&汇编Thumb代码,则值为16,与{CONFIG}同义
--------------------------------------------------------------------------------
{CPU}& && && && && && && && && && && && &&&选定的CPU名,缺省时为ARM7TDMI
--------------------------------------------------------------------------------
{FPU}& && && && && && && && && && && && &&&选定的FPU名,缺省时为SoftVFP
--------------------------------------------------------------------------------
{ARCHITECTURE}& && && && && && && & 选定的ARM体系结构的值;3,3M,4,4T和4TxM
--------------------------------------------------------------------------------
{PCSTOREOFFSET}& && && && && && & STR pc,[…]或STMRb,[…PC]指令的地址和PC存
& && && && && && && && && && && && && && && & 储值之间的偏移量
--------------------------------------------------------------------------------
{ARMASM_VERSION}& && && && && & ARM汇编器的版本号,为整数
或| ads $ version |& && &
关于ARM汇编里的特殊符号
先前企图全部靠自己写一个bootloader,结果尝试了下,花了4天时间查各种技术资料,写了个startup.s文件出来,写的过程中才发现,原来还有很多问题是我基本上不知道的,比如说如何进行ARM的位操作、如何将堆栈设置到RAM中、UART的波特率计算方法等问题。
在边写边查资料的过程中,我又发现了别人的一些程序我看不懂。。。因为除了EQU、DCD等我基本不用伪指令。。。
所以我开始看44B0 BootLoader的范例程序,可能是人家水平实在比较高,也可能是俺的水平确实有限,总之是有些地方看不怎么懂,特别是一些个特殊符号,现特将那些个麻烦的符号总结下:
特殊符号& && & |& && &&&对应指令& && && && & |& && && & 含义& && && && && && &|& && &示例
-------------------|---------------------------------|----------------------------------|---------------------------------------
^& && && && && &&&|& && & MAP& && && && && && &&&|& && & 定义结构化内存表& &| MAP 4096;内存表首地
& && && && && && & |& && && && && && && && && && && &|& && && && && && && && && && && & | 址为4096
-------------------|---------------------------------|----------------------------------|---------------------------------------
#& && && && && &&&|& && & FIELD& && && && && && &|& && & 定义内存表中的数& &|&&MAP 4096
& && && && && && & |& && && && && && && && && && && &|& && & 据,结合MAP指令& &|&&STACKSVC&&FIELD& & 256;
& && && && && && & |& && && && && && && && && && && &|& && & 使用。& && && && && && &| 定义从4096开始的256字节
& && && && && && & |& && && && && && && && && && && &|& && && && && && && && && && && & |为SVC的堆栈空间。
-------------------|---------------------------------|----------------------------------|---------------------------------------
%& && && && && & |& && & SPACE& && && && && &&&|& &&&分配一块内存,并& &&&|&&DataStruc&&SPACE&&280
& && && && && && & |& && && && && && && && && && && &|& &&&用“0”初始化& && && && & | 分配280字节内存并初始化
----------------
[ 本帖最后由 sep 于
22:28 编辑 ]
空间积分0 信誉积分1399 UID8930985阅读权限30积分1319帖子精华可用积分1319 专家积分0 在线时间1316 小时注册时间最后登录
家境小康, 积分 1319, 距离下一级还需 681 积分
帖子主题精华可用积分1319 专家积分0 在线时间1316 小时注册时间最后登录
论坛徽章:2
好的,慢慢来
JTAG用的是华恒带的SJF2410,就是个烧写的东西吧
显示找不到CPU
没有仿真器用不了MULTI-ICE吧,只有一个简单的烧写软件,在LINUX下面的
[ 本帖最后由 lxyscls 于
09:37 编辑 ]

我要回帖

更多关于 如何移植rom 的文章

 

随机推荐