查看: 3630|回复: 4

[求助] 如何在opensda源码中 增加新的目标板

[复制链接]

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
发表于 2015-4-14 12:41:52 | 显示全部楼层 |阅读模式
这两天在看OPENSDA的源代码,在OPENSDA的源码目录中有CMSIS-DAP-master\interface\flash_algo_mdk\MKXXX这个目录,我的理解是通过这个keil工程生成目标板的flash算法。最终会生成跟CMSIS-DAP-master\interface\target\hal\DBG_Freescale\DBG_KL25Z目录中对应的target_flash.inc文件。
但是,按照这个猜测,并没有生成target_flash.inc文件。请教各位大神,如何在opensda的源码中生成目标板的flash算法镜像?

下面是我的做法:

按照这个猜测,我编译了keil工程中的MKL25Z128_Pflash这个工程,生成了MKL25Z128.afx仿真文件,然后到CMSIS-DAP-master\interface\flash_algo_mdk\MKXXX目录中执行gen_flash_algos.sh脚本,最终在CMSIS-DAP-master\interface\flash_algo_mdk\MKXXX目录中生成了MKL25Z128.txt文件,打开文件查看其中的内容:

const uint32_t flash_algo_blob[] = {
    0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
    0x492cb510, 0x60082000, 0x4448482b, 0xf8a8f000, 0xd0002800, 0xbd102001, 0x47702000, 0xb5104826,
  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。   
    0x40020004, 0x00000000,
};
static const TARGET_FLASH flash = {
    0x20000021, // Init
    0x20000039, // UnInit
    0x2000003D, // EraseChip
    0x20000061, // EraseSector
    0x2000008F, // ProgramPage

跟target_flash.inc相比,TARGET_FLASH这个结构体还有几个成员变量没有生成。static const TARGET_FLASH flash = {
    0x20000021, // Init
    0x20000039, // UnInit
    0x2000003D, // EraseChip
    0x2000005F, // EraseSector
    0x2000008B, // ProgramPage
    // breakpoint = RAM start + 1
    // RSB : base address is address of Execution Region PrgData in map file
    //       to access global/static data
    // RSP : Initial stack pointer
    {
        0x20000001, // breakpoint instruction address
        0x20000000 + 0x20 + 0x470,  // static base register value (image start + header + static base offset)
        0x20000800  // initial stack pointer
    },

    0x20000a00, // program_buffer, any valid RAM location with +512 bytes of headroom
    0x20000000, // algo_start, start of RAM
    sizeof(KL25Z_FLM), // algo_size, size of array above
    KL25Z_FLM,  // image, flash algo instruction array
    512        // ram_to_flash_bytes_to_be_written

};


我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2015-4-15 09:57:55 | 显示全部楼层
增加Target对应targetfirmware,会在http://github.com/ARMmbed/CMSIS-DAP提供的工程中增加,里面辨别Target的算法,不是FSL提供的。
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2015-5-13 17:40:07 | 显示全部楼层
  非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
回复 支持 反对

使用道具 举报

该用户从未签到

24

主题

364

帖子

0

高级会员

Rank: 4

积分
760
最后登录
2021-4-2
发表于 2015-6-9 13:52:48 | 显示全部楼层
楼主,有没有OpenSDA的J-link或pe-micro 相关资料和代码。
回复 支持 反对

使用道具 举报

该用户从未签到

24

主题

502

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1363
最后登录
1970-1-1
发表于 2015-6-9 15:58:05 | 显示全部楼层
不错,学习了.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-27 12:56 , Processed in 0.089786 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表