• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

MDK怎么让一个函数对齐到1K地址边界?

apleilx 2018-09-21 浏览量:836
RT,需要运行时删除部分函数,怎么让它对齐在flash扇区边界上?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 删除是删除, 对齐是对齐,为啥要删除就需要对齐呀。

    一般对齐是方便指针操作,存取效率高。

    对齐到1k 有上对齐, 下对齐, 比如 :

    ( pointer + 0x3ff ) & 0xfffff400 向上对齐

    ( pointer - 0x3ff ) & 0xfffff400 向下对齐

    • 发布于 2018-09-27
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 你这种做法不合理吧你这次运行了删除了下次启动岂不是死机了

    要是你的程序加载到内存里运行你说的情况才合理

    • 发布于2018-09-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般是对数据有这种要求
    • 发布于2018-09-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 楼主的目的是在运行的时候删除掉FLASH中特定用户程序的数据吗?这个不太好,容易出BUG,或者楼主可以将用户程序放在特定的位置运行。

    • 发布于2018-09-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种很难做到,因为你不能获取到你的函数对应存放地址
    • 发布于2018-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 要先获取你的数据地址,然后从地址按对应的大小读取
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 已解决,KEIL可以定位函数地址。加密算法写在一个函数内,加密后删除自身并填充为NOP和返回指令。
    • 发布于2018-10-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种加密方式很巧妙,值得借鉴。
    • 发布于2018-10-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 根据你的代码可以定位到你的地址,然后把对应的数据删除即可
    • 发布于2018-10-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 找到你的地址指令,然后用计算数据长度函数获取
    • 发布于2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

MDK怎么让一个函数对齐到1K地址边界?