6455工程中的asm文件

已有的.pjt工程文件,往往有一个.asm文件,.asm文件包含了设置跳转到该程序的c入口点的reset中断(C_int00)所需的汇编指令,还会定义附加的中断向量。

每个DSP处理器都有一个中断源列表,有的是固定的有的是可通过编程修改的。向量表(vector table)又叫做中断服务表(interrupt service table),往往在cmd文件中分配了其存储区。DSP复位,程序加载后,寄存器初始化为默认值,程序计数器(PC)设置为复位向量,同时cpu开始从地址0运行代码,这个位置往往就是复位向量。

每个中断向量的长度是固定的,为8个字。中断向量表以0x400B为边界,因为一共有32个向量,每个向量32B,这样就是0x400B。当移动中断服务表时,中断服务表指针(ISTP)也要相应改变,复位后ISTP保持为0。

?

?

DSP用到的的汇编伪指令查看assembly language tools v7.6 UG.pdf

用到的汇编指令查看tms320c64x64x+ DSP CPU and instruction set refrence guide.pdf

从pdf里搜索的时候这么搜"syntax "

?

?

.def指令在当前模块中定义

.ref指令在当前模块使用在别的模块中定义的符号

.global指令可以是上面任何一种情况

?

?

汇编指令查看tms320c64x64x+ DSP CPU and instruction set refrence guide.pdf

?

.sect

Example:

?

Mvk

?

Zero

LDB:load byte from memory with a 15-bit unsigned constant offset

ADD

B

Cmplt

?

Stb

?

?

?

?

?

?

?

?

?

?

?

bootDSK6455.asm文件内容

.ref _c_int00????????????C入口点

.global RESET_RST????????

?

FLASH_START ????.equ 0xB0000400 ;flash start address????????//In EMIFA boot mode, the bootloader simply branches to the base address of EMIFA CE3 (0xB000 0000).Interrupts are disabled.这个地址 EMIFA_CE3: o = 0xB0000000 l = 0x00800000

CODE_START ????.equ 0x00800400 ;start of non boot code

CODE_SIZE ????.equ 0x0000F000 ;application code size in byte

?

????.sect "vectors"????????????????????????????????//中断服务表

RESET_RST:

?

NOP ; mvkl .S2 _c_int00, B0

NOP ; mvkh .S2 _c_int00, B0

NOP ; B .S2 B0

????NOP

????NOP

????NOP

????NOP

NOP

?

NMI_RST:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

RESV1:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

RESV2:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT4:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT5:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT6:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT7:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT8:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT9:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT10:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT11:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT12:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT13:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT14:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

INT15:

NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

????NOP

?

????.sect "bootload"

????

_boot_start:

mvkl FLASH_START,B4 ;flash start address ->B4

mvkh FLASH_START,B4

????

????mvkl CODE_START,A4 ;apps code start address ->A4

????mvkh CODE_START,A4

????zero A1

????

_boot_loop1:

????ldb *B4++,B5 ; flash read

????mvkl CODE_SIZE-4,B6 ; B6 = BOOT_SIZE -1024

????

????add 1,A1,A1 ;A1+=1,inc outer counter

????|| mvkh CODE_SIZE-4,B6????????//Parallel bars (||) indicate instructions that are in parallel with a previous instruction. You can have up to eight instructions that will be executed in parallel. The following example demonstrates six instructions to be executed in parallel:

????

????cmplt A1,B6,B0

????nop

????stb B5,*A4++

????[B0] b _boot_loop1

????nop 5

????

????mvkl .S2 _c_int00, B0

????mvkh .S2 _c_int00, B0

????B .S2 B0

????nop 5????

?

时间: 2024-10-09 17:16:57

6455工程中的asm文件的相关文章

关于Java Web工程中web.xml文件

提及Java Web工程中web.xml文件无人不知,无人不识,呵呵呵:系统首页.servlet.filter.listener和设置session过期时限,张口就来,可是你见过该文件中的error-page标签吗?下面直接以例子的形式说明error-page标签的使用: 一个servlet文件: package com.ghj.packageofservlet; import java.io.IOException; import javax.servlet.ServletException;

关于在工程中添加新文件时的LNK2019错误的一个解决办法

我这几天一直在研究Qt的串口程序,在读懂了官方给出的实例程序后我决定把其多线程的串口监视程序加入到我自己的工程中,便直接把问价复制到自己的工程下面,在Qt中加入到自己的工程中,但是总是出现LNK2019问题,问题提示是新添加的文件链接错误.我在网上找到一种解释: 在pro里 写 qt+=widgets 表示引入 QtWidget这个module,qmake会在帮你生成makefile的时候,设置好include path 和 lib path,在link时候设置好libs.而仅在源代码里 inc

关于XCode工程中PrefixHead.pch文件的使用

1.首先先清除pch文件在工程中的作用: 存放一些全局的宏(整个项目中都用得上的宏) 用来包含一些全部的头文件(整个项目中都用得上的头文件) 能自动打开或者关闭日志输出功能 2.由于新建的XCode工程文件是没有pch文件的,原因可能是因为大家把大量的头文件和宏定义放到pch里边,导致编译时间过长.苹果去掉他可能是要加快编译时间增加用户体验.虽然失去了编程的便利性. 所以需要我们自己手动新建一个pch文件,步骤如下: Command+N,打开新建文件窗口:ios->other->PCH fil

关于Android工程中的主要文件夹存放的文件种类

Android工程中的文件类型包括以下几种: 一.jar包:是为了解决软件的兼容问题.如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库.Android private libraries 和 Android 4.2.2  .Referenced libraries 等.其实 Android private libraries 和Referenced libraries 两个文件夹中的都是通过configure build  pat

Maven+STS工程中Maven Dependencies 文件夹丢失问题

在我们使用Maven+sts工程中偶尔会出现这种情况: Maven Dependencies文件夹在新打开的工程中丢失,造成 web project 自动编译出错,缺少必要的库文件: 如下图所示的情况: 说明:这种情况往往出现在开发环境重新搭建以后,Maven的依赖库不在是原来的路径下,这时候会出现这种问题. 网上常见的解决方法是: 右键项目--maven---Disable Maven Nature 如下图: 之后 重新转换成 Maven项目 :项目右键--configure--convert

Git - 忽略Xcode工程中UserInterfaceState.xcuserstate文件的问题

一.在同 .Git目录下创建.gitignore文件.在文件中加入如下内容: *.xcuserstate project.xcworkspace xcuserdata UserInterfaceState.xcuserstate project.xcworkspace/ xcuserdata/ UserInterface.xcuserstate 二.退出xcdoe, 打开终端(Terminal),进入项目目录下. 三.在终端键入  git rm --cached [YourProjectName

iOS工程中AppDelegate.m文件的作用

我也看了网上的一些关于微信小程序的文章,估计那帮家伙连微信小程序是什么都没搞清楚,就在那里一本正经地胡说八道.好吧,我就通过本文让大家了解一些什么是微信小程序,以及微信小程序到底能为我们带来什么. 连接到服务器,把请求信息递给服务器,服务器收到信息之后,解析相关的信息,然后进行处理,再返回浏览器请求的数据. 线性表是具有零个或多个数据元素的有限序列.线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的. 当根据位图索引的列进行and,or或 i

@angular/cli 工程中使用scss文件

如果你创建工程项目用angular-cli 你的样式文件想使用scss, 并且让ng serve自动编译它们 你可以在创建项目的时候用 ng new sassy-project --style=sass 或者通过ng set defaults.styleExt scss 来修改你现有的项目 然后修改.angular-cli.json的 "styles": [    "styles.css" // "styles.scss" ] 和componen

在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决

from://http://blog.csdn.net/watt520/article/details/10099047 今天在弄清除缓存的东东,按照网上别人的方法,创建了一个AIDL文件,这个时候发现gen目录下自动生成的java文件报错了,内容是里面的一些方法要去掉override,但是去掉之后还是报错,所以我想应该不是要去掉override..于是又四处寻找问题解决办法,最终看到某某大神说和JDK版本有关系,我表示很无语,不过,我试着把properities->java compiler里