久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Tasking基礎:將常量放入指定PFlash位置

     開心果NeedCar 2024-05-28 發布于上海
    工程開發中,常常會有這樣的需求:
    1. 標定中,需要將常量放入指定位置的PFlash地址空間;
    2. 特定常量(eg:軟件版本號,VIN等),放入自定義的PFlash地址空間;
    3. 信息安全中,將指定的校驗信息存入指定PFlash地址空間;
    ......
    如上的場景,都需要將常量存儲指定的PFlash位置。如果是基于Tasking的編譯器,如何操作呢?

    1、將常量放入指定PFlash地址空間的操作

    如果要將常量放入指定的PFlash位置,主要包括兩步:修改鏈接文件、在源文件中將目標常量設定到目標段。
    (一)在鏈接文件(*.lsl)中開辟指定的PFlash段(Section)
    鏈接文件主要用來告知鏈接器(Linker),應該如何分配變量和函數的地址空間。具體操作如下所示:
    #define HSM_MYCONSTANT_ADDRESS   0x8001B000......section_layout :ARM:linear{    group ( ordered, run_addr=HSM_MYCONSTANT_ADDRESS )    {        select ".myConstant";    }}......

    在Section中定義一個Group,且指定起始的PFlash地址為0x8001B000,將目標段(eg:.myConstant)放入該Group中。

    注意:Section_layout指定了ARM內核的內存空間,如果是其他的Core架構,引用的內存空間可能不同,注意區別。

    (二)在源文件(*.c)中定義要設置的常量

    舉例:在源文件(*.c)中定義要存儲的常量MY_CONSTANT,用修飾符const修飾,并將常量放入指定的Section(本文:.myConstant),示意如下所示:

    __attribute__ ((section (".myConstant")))const char MY_CONSTANT[8] = {'M','Y','_','C','O','N','S','T'};
    注意:不要用修飾符static限定常量位置,否則,可能導致常量無法放入指定PFlash地址。
    (三)確認指定位置的常量
    首先,可以通過編譯后的*.map文件確認自定義的常量段(.myConstant)是否在預期的位置,示意如下:

    之后,可以進一步確認:設置的常量是否在預期的PFlash位置,示意如下:

    最后,將程序下載到目標板,通過查看Memory,確認指定PFlash地址是否是預期存儲的內容,示意如下:

    如何將全局變量放入指定RAM區,可以參考前文《Tasking基礎:將變量放入指定內存的兩種方式》。

      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 26uuu另类亚洲欧美日本| 草草影院精品一区二区三区| 欧美精品亚洲精品日韩专区一乛方| 永久免费av网站可以直接看的| 丁香婷婷色综合激情五月| 美女又黄又免费的视频| 精品人妻二区中文字幕| 激情97综合亚洲色婷婷五| 欧美性群另类交| 真实国产熟睡乱子伦视频| 久久精品国产99久久久古代| 中文字幕在线亚洲日韩6页| 国产精品久久久久7777| 少妇高清一区二区免费看| 国内精品无码一区二区三区| 日韩免费无码一区二区三区| 噜噜噜噜私人影院| 午夜免费国产体验区免费的| 强奷漂亮人妻系列老师| 亚洲性色AV一区二区三区| 精品久久人人做爽综合| 久久久亚洲AV波多野结衣| 久久超碰色中文字幕超清| 亚洲综合色婷婷六月丁香宅男大增| 欧美大胆老熟妇乱子伦视频| 欧美和黑人xxxx猛交视频| 国产成人一区二区三区视频免费| 国产精品中文字幕在线| 色播久久人人爽人人爽人人片AV| 国产欧美综合在线观看第十页 | 国产特级毛片AAAAAA视频| 中文字幕日韩有码一区| 精精国产XXXX视频在线播放 | 全国最大的成人网站| 午夜成年男人免费网站| 动漫av网站免费观看| H无码动漫在线观看| 国产成人无码A区在线观| 噜噜综合亚洲av中文无码| 久久精品99国产精品日本| 国产边摸边吃奶边叫做激情视频 |