Code Monkey home page Code Monkey logo

uds_s32k144_flashdriver's Introduction

🍻 UDS_S32K144_FlashDriver

/*
 *          ___                        ___                   _____          ___
 *         /__/\          ___         /__/\                 /  /::\        /  /\          ___
 *         \  \:\        /__/\       |  |::\               /  /:/\:\      /  /::\        /__/\
 *          \  \:\       \  \:\      |  |:|:\             /  /:/  \:\    /  /:/\:\       \  \:\
 *      _____\__\:\       \  \:\   __|__|:|\:\           /__/:/ \__\:|  /  /:/~/:/        \  \:\
 *     /__/::::::::\  ___  \__\:\ /__/::::| \:\          \  \:\ /  /:/ /__/:/ /:/___  ___  \__\:\
 *     \  \:\~~\~~\/ /__/\ |  |:| \  \:\~~\__\/           \  \:\  /:/  \  \:\/:::::/ /__/\ |  |:|
 *      \  \:\  ~~~  \  \:\|  |:|  \  \:\                  \  \:\/:/    \  \::/~~~~  \  \:\|  |:|
 *       \  \:\       \  \:\__|:|   \  \:\                  \  \::/      \  \:\       \  \:\__|:|
 *        \  \:\       \__\::::/     \  \:\                  \__\/        \  \:\       \__\::::/
 *         \__\/           ~~~~       \__\/                                \__\/           ~~~~
 */

📖 简介

S32K1xx 的 CAN 接 周立功 USBCANFD-100U-mini,使用 ZCANPRO 软件的 ECU刷新 功能进行测试。在加载相应的安全访问算法 DLL 文件 📦 UDS_SecurityAccess 之后,通过相应的 UDS 服务将 📦 UDS_S32K144_FlashDriver 的 hex 文件下载至 📦 UDS_S32K144_Bootloader 在链接文件中为其预先指定起始地址的 RAM 空间中,并通过 Flash Driver 内实际包含的相应的 Flash 驱动函数的相对偏移量以及驱动函数本身来计算相应驱动函数的入口点在 RAM 内的偏移地址后,再通过函数指针的方式调用相应的编程、擦写、校验等 Flash API 以实现将 📦 UDS_S32K144_APP 烧写至 Flash 的 APP 片区,最终实现 ECU刷新 的整个 APP 更新流程。

Pic_ZCANPRO_ECU_Refresh

🔗 关联工程

⚙️ 硬件 & 软件 需求

硬件需求

  • S32K144-EVB
  • J-Link
  • USBCANFD-100U-mini
  • 12V External Power Supply

软件需求

  • S32 Design Studio for ARM Version 2.2
  • ZCANPRO
  • J-Flash



⚠️ 注意

Note_00 Note_01 Note_02

uds_s32k144_flashdriver's People

Contributors

summerfalls avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

uds_s32k144_flashdriver's Issues

flash driver验证

@SummerFalls 作者你好:

我遇到的问题:NVM_TestFlashDriver函数执行到g_pFlashDriverAPIRAM->pfFLASH_DRV_EraseSector会导致系统崩溃(停在startup_S32K118.S DefaultISR处)。

我验证的流程:flash driver工程在注释EN_FLASH_DRIVER_DEBUG后,编译提取出flash driver hex数组,手动将flash driver hex数据放至flash driver工程g_flashDriverRAM数组中,再编译进行调试。

请问编译提取出的flash driver hex数组不能用这种方式在flash driver工程进行有效性验证吗?

谢谢!

FlashDriver中的函数如何与地址对应?

大神你好,我想问下FlashDriver中的函数是如何与地址对应的?是下面这个代码么?没看太懂。。对应关系还是没理太清楚,麻烦有空了解释一下。。谢谢大神。。
static const tFlashDriverAPIInfo gs_FlashDriverAPI NVM_DRIVER_SECTION = {
#if defined (S32K116) || defined (S32K142)
(tpfFLASH_DRV_EraseSector) CAL_OFFSET(FLASH_DRV_EraseSector),
(tpfFLASH_DRV_Program) CAL_OFFSET(FLASH_DRV_Program),
(tpfFLASH_DRV_VerifySection) CAL_OFFSET(FLASH_DRV_VerifySection),
(tpfFLASH_DRV_GetDefaultConfig) CAL_OFFSET(FLASH_DRV_GetDefaultConfig),
#elif defined (S32K144) || defined (S32K118)
// (tpfFLASH_DRV_EraseAllBlock) CAL_OFFSET(FLASH_DRV_EraseAllBlock),
// (tpfFLASH_DRV_VerifyAllBlock) CAL_OFFSET(FLASH_DRV_VerifyAllBlock),
(tpfFLASH_DRV_EraseSector) CAL_OFFSET(FLASH_DRV_EraseSector),
(tpfFLASH_DRV_VerifySection) CAL_OFFSET(FLASH_DRV_VerifySection),
// (tpfFLASH_DRV_EraseSuspend) CAL_OFFSET(FLASH_DRV_EraseSuspend),
// (tpfFLASH_DRV_EraseResume) CAL_OFFSET(FLASH_DRV_EraseResume),
(tpfFLASH_DRV_Program) CAL_OFFSET(FLASH_DRV_Program),
(tpfFLASH_DRV_ProgramCheck) CAL_OFFSET(FLASH_DRV_ProgramCheck),
// (tpfFLASH_DRV_ProgramSection) CAL_OFFSET(FLASH_DRV_ProgramSection),
// (tpfFLASH_DRV_EraseBlock) CAL_OFFSET(FLASH_DRV_EraseBlock),
// (tpfFLASH_DRV_CommandSequence) CAL_OFFSET(FLASH_DRV_CommandSequence),
// (tpfFLASH_DRV_VerifyBlock) CAL_OFFSET(FLASH_DRV_VerifyBlock),
#endif

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.