嵌入式开发者社区

标题: 关于 函数的二进制写法 [打印本页]

作者: 新手上路    时间: 2015-12-18 18:51
标题: 关于 函数的二进制写法
比如  有一个函数 Void(){函数内容
}


我能不能 把Void这个函数写成二进制或者其他进制的数字,然后通过把这些数字某地址,然后调用这个地址实现调用函数内容的功能。
把这些数 放到 dsp内存 ,调用这些数字,就相当于调用  ccs中 写的:    Void() {内容}
比如 :假如void()可 写成 0x23  0x45  0x67  0x89,然后我们把0x23  0x45  0x67  0x89放到 内存 某地址中 ,用指针调用这个这个地址  ,就相当于 调用了void()函数。
这是小弟的一个想法 ,不知道可行不可行,希望大神能给小弟 说说,小弟先谢过了,


作者: 希望缄默    时间: 2015-12-18 19:22
听起来有些复杂~

不过感觉你可以用指向函数的指针来实现
作者: 新手上路    时间: 2015-12-21 08:40
希望缄默 发表于 2015-12-18 19:22
听起来有些复杂~

不过感觉你可以用指向函数的指针来实现

我要是  有一个函数A  全用 二进制的方式写,然后 在存入 一个工程的  缓存中,可以调用这个函数 A。那这个函数A 我二进制 写的规则  是什么呢?  比如AIS  文件 0X58530906  是 段加载命令  ,那我 用二进制 写的  dsp 可调用 的一个子函数A  二进制书写规则  是不是 跟 AIS二进制书写规则一样呢?
作者: 新手上路    时间: 2015-12-21 17:40
希望缄默 发表于 2015-12-18 19:22
听起来有些复杂~

不过感觉你可以用指向函数的指针来实现

我做这些 目的 就是  在不 改原工程的 前提下  添加  一段代码 ,问题是用什么方式添加 进去?原工程中已经提前留好地址指针。
作者: 希望缄默    时间: 2015-12-22 09:20
新手上路 发表于 2015-12-21 17:40
我做这些 目的 就是  在不 改原工程的 前提下  添加  一段代码 ,问题是用什么方式添加 进去?原工程中已 ...

那你就把函数写到相应地址就行
作者: 新手上路    时间: 2015-12-22 10:30
希望缄默 发表于 2015-12-22 09:20
那你就把函数写到相应地址就行

关键是用什么方式写到相应地址呢
作者: 新手上路    时间: 2015-12-22 10:42
新手上路 发表于 2015-12-22 10:30
关键是用什么方式写到相应地址呢


要添加的函数或者代码, 是随时改变的、不固定的,用什么方式添加呢?原打算 手动写函数的,AIS格式的二进制数,即:0X58530906  是AIS的 段加载命令 后面跟上地址 还有段长度。发现这种写法非常复杂。或者您那 有什么方法把一段代码 变成DSP可执行的 二进制 文件的好方法没?
作者: 希望缄默    时间: 2015-12-22 22:10
新手上路 发表于 2015-12-22 10:42
要添加的函数或者代码, 是随时改变的、不固定的,用什么方式添加呢?原打算 手动写函数的,AIS格式的二 ...

C6000 动态链接技术 可能适合你
http://processors.wiki.ti.com/index.php/C6000_Dynamic_Loader
作者: 新手上路    时间: 2015-12-23 10:12
希望缄默 发表于 2015-12-22 22:10
C6000 动态链接技术 可能适合你
http://processors.wiki.ti.com/index.php/C6000_Dynamic_Loader ...

动态加载,是用什么方式下载到开发板的?JATG?串口?或者是换算成二进制 通过总线传输?




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4