STM32如何将BootLoader和App代码整合成一个工程

STM32如何将BootLoader和App代码整合成一个工程

现在遇见的办法有:
1.将BootLoader和App工程各自生成的Bin或Hex文件通过脚本等方式整合成一个Hex文件再进行烧录;
2.将BootLoader代码编译生成的Bin文件转化成C数组后在App工程里用Const定义在相应的地址位置,然后再进行编译烧录;

我在想是否能直接将BootLoader代码和App代码直接整合放在一个工程里面进行编译生成烧录文件?

感觉理论上可行,编写.src文件,确定对应的链接文件和地址就能实现跳转。
1.Boot和App都有各自的main函数,放在一个工程里直接报错;
2.如果只在Boot程序里写main,App不写,靠Boot指定的地址跳转App特定的函数继续执行App代码的功能可行吗?那么又如何写跳转执行特定的函数呢?
3.如果上述可以,那么如何写src文件才能具体区分Boot和App的程序存储区域

求解答!!能给个示例吗

方法1是比较靠谱的做法,合并的时候还能添加一些额外数据进去。
我们公司以前就一直在用这种方式。建议提前规划好所有的分区结构,分区结构可以参数配置,这样调整一下参数就可以用于不同的项目。
升级用的bin文件,一般也不要直接给个问题给用户,而是自己包装一下,比如加上文件头用于校验,以免客户端升级个错误的文件进去,对升级文件进行加密处理,避免被破解等。

楼主有方法了吗