这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 企业专区» Renesas» [智能小车开发讨论]如何将单个函数独立编译,放在固定的地址?

共7条 1/1 1 跳转至

[智能小车开发讨论]如何将单个函数独立编译,放在固定的地址?

工程师
2012-09-01 08:57:39 打赏
来个有点难度的,大家研究一下。

现在有一个想法:准备做一个智能小车。可以让用户自行编程,然后下载到小车了,这样小车就会根据用户的指令进行智能运行(就像“好奇”号火星车一样,晚上接收来自地球的控制程序,白天就按指令探索火星)

按以下步骤做:

1、开发一个上位机程序,供用户编程(所谓用户编程就是图形化的介面,好像SMT机器一样),然后根据用户的程序,生成可烧录的代码。

2、用户通过上位机程序(和步骤1是同一个程序)自行将代码写进智能小车,这里我们需要在MCU内部划出一个区域用来存放用户的程序

3、智能小车就是用RL78 MCU开发,智能小车的主控板加上USB转uart的IC,方便用户通过USB操作

4、当然智能小车也内置有常规的几个工作模式,用户可以通过摇控器来进行控制。

根据以上几点,我现在还有些地方没想通,希望Renesas的工程师指点一下

步骤1中、怎么可以单独编译出hex文件?
比如我的上位机程序根据用户的介面编程,生成了一个函数:
void UserControl(void)
{
;
}

怎么把UserControl这个函数生成一个Hex文件?

步骤2、中,基本没问题,MCU接收到上位机的代码后,写到指定的区域就可,当用户要运作自编程程序,就跳转到该区域运行。

步骤3、中,也基本没问题

步骤4、中,也基本没问题


大家讨论讨论,看看这个想法可行不可行??



关键词: 智能 小车 开发 讨论 如何 单个 函数 独立

院士
2012-09-01 10:45:35 打赏
2楼
这个我看到有人这样尝试过,可行

其中生成函数的hex是无法单独完成,要从工程建立,然后再打开hex文件,自行提取函数部分的源代码。然后再通过烧录软件自行烧录到相应地址区段。

貌似人家使用的为GCC一类的开放编译环境。

个人能力有限,并未深入了解

工程师
2012-09-01 10:48:30 打赏
3楼
要用户自行建立代码,所以要在我们自己开发的程序中能生成hex文件才行。

不然无法让用户自行完成哦

院士
2012-09-01 11:03:19 打赏
4楼
如果单单使用上位机来识别出来函数的hex代码部分,我觉得难度有些大了。

看看开源的编译器吧。它们也许可以选择性的编译函数。

工程师
2012-09-01 11:08:39 打赏
5楼

其实应该没这么复杂,

我们要理解,怎么把C变为ASM再变为机器码,就可以生成hex文件了。

但对这个真的还没有研究


助工
2012-09-03 16:13:00 打赏
6楼
jobs解答得正确

一二三四步骤都是可以实现的,单独的函数没法生成HEX文件,要从工程做起
工程里可以建两个工程,一个是Boot Project,一个是User Project,Boot Project放通信/自编程等代码,User Project放可更新的代码,通过在线更新更新代码

用户自行建立代码?是不是类似Arduino这种模式?
http://www.arduino.cc/

工程师
2012-09-03 20:44:54 打赏
7楼
对要用户自建代码。

如果构建project生成bootloader和主程序代码的方法的话,就无法实现终端用户自行编程了

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]