91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南之定義傳輸源和目標(biāo)存儲(chǔ)器

瑞薩嵌入式小百科 ? 來源:野火電子 ? 2025-12-15 11:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

19.7.1.3

定義傳輸源和目標(biāo)存儲(chǔ)器

首先,要使用DMA傳輸,就肯定要有一個(gè)源地址和一個(gè)目標(biāo)地址,這里我們定義SRC_Buffer數(shù)組的首地址作為源地址,DST_Buffer數(shù)組的首地址作為DMAC傳輸?shù)哪繕?biāo)地址。SRC_Buffer數(shù)組由于有const聲明為常量,因此其數(shù)據(jù)存儲(chǔ)在內(nèi)部Flash 中,DST_Buffer為普通的全局變量,其數(shù)據(jù)存儲(chǔ)在RAM中。這兩個(gè)數(shù)組的大小由宏定義BUFFER_SIZE來決定。

列表2:代碼清單20?1 定義傳輸源和目標(biāo)存儲(chǔ)器

左右滑動(dòng)查看完整內(nèi)容

// 用戶要發(fā)送的數(shù)據(jù)大小
#defineBUFFER_SIZE 32
/**
* 定義 SRC_Buffer 數(shù)組作為 DMAC 傳輸數(shù)據(jù)源
* const 關(guān)鍵字將 SRC_Buffer 數(shù)組變量定義為常量類型,數(shù)據(jù)存儲(chǔ)在內(nèi)部的 FLASH 中
*/
constuint32_tSRC_Buffer[BUFFER_SIZE] = {
0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,
0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,
0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,
0x31323334,0x35363738,0x393A3B3C,0x3D3E3F40,
0x41424344,0x45464748,0x494A4B4C,0x4D4E4F50,
0x51525354,0x55565758,0x595A5B5C,0x5D5E5F60,
0x61626364,0x65666768,0x696A6B6C,0x6D6E6F70,
0x71727374,0x75767778,0x797A7B7C,0x7D7E7F80};
/**
* 定義 DMAC 傳輸目標(biāo)存儲(chǔ)器
* 存儲(chǔ)在內(nèi)部的 SRAM 中
*/
uint32_tDST_Buffer[BUFFER_SIZE] = {0};

19.7.1.4

設(shè)置源地址和目標(biāo)地址函數(shù)

DMAC傳輸?shù)呐渲?,可以選擇在FSP配置界面中進(jìn)行配置,但是要注意,在FSP配置界面中進(jìn)行配置的話是不方便配置傳輸?shù)刂返?,所以此時(shí)我們其實(shí)還沒有配置傳輸?shù)脑吹刂泛湍繕?biāo)地址,這部分需要在代碼里面配置。

列表3:代碼清單20?2 設(shè)置源地址和目標(biāo)地址函數(shù)

左右滑動(dòng)查看完整內(nèi)容

/* 設(shè)置傳輸?shù)脑吹刂泛湍康牡刂?*/
voidset_transfer_dst_src_address(transfer_cfg_tconst *constp_config,
voidconst * volatile p_src,
voidconst * volatile p_dest )
{
p_config->p_info->p_src = (void*) p_src;
p_config->p_info->p_dest = (void*) p_dest;
}

19.7.1.5

使用FSP配置器生成的配置

前面我們?cè)贔SP配置界面上的配置其實(shí)是保存在hal_data.c文件中。如下圖所示。

3dc2e534-d190-11f0-8c8f-92fbcf53809c.png

我們完全可以在hal_data.c文件中找到定義好的數(shù)據(jù),重新復(fù)制一份,再改個(gè)變量名,在此基礎(chǔ)上重新配置各個(gè)參數(shù)。在本例程中也使用了這種方法,主要是為了使用宏去方便切換不同模式的配置代碼,在代碼中配置DMAC。在頭文件“bsp_dmac_m2m.h”中,默認(rèn)定義了USE_MY_TRANSFER_INFOR_CONFIG來選擇使用我們?cè)诖a里自定義的傳輸信息配置,但是現(xiàn)在讓我們先注釋掉這個(gè)宏定義,從而選擇使用在FSP配置界面上的配置。

下面的是與我們之前在FSP配置界面上的配置等效的配置代碼:

列表4:代碼清單20?3與FSP配置界面上的配置等效的配置代碼

左右滑動(dòng)查看完整內(nèi)容

/* FSP 配置界面的傳輸信息配置(正常傳輸模式)等效于下面 fsp_transfer_info_normal 里
的配置(除了源地址和目標(biāo)地址)
源地址和目標(biāo)地址在 FSP 配置界面設(shè)置的話不太方便,我們會(huì)在 DMAC_Init 函數(shù)里設(shè)置。
關(guān)于偏移值(Offset value)和源緩沖大小(Source Buffer Size),在 transfer_info_
→t 里沒有這兩項(xiàng)設(shè)置,建議在 FSP 配置界面設(shè)置
- 偏移值只有在地址模式是偏移模式的情況下才會(huì)用到;
- 而源緩沖大小與之相關(guān)的功能本例程不會(huì)涉及到,所以暫不考慮。
下面的 fsp_transfer_info_normal 僅作為對(duì)比參考,在本例程中是沒有用到的。
*/
//transfer_info_t fsp_transfer_info_normal =
//{
// .transfer_settings_word_b.dest_addr_mode = TRANSFER_ADDR_MODE_FIXED,?
→//每次傳輸后,目標(biāo)地址指針固定不變
// .transfer_settings_word_b.repeat_area = TRANSFER_REPEAT_AREA_
→SOURCE,//源區(qū)域重復(fù) (正常模式下無效)
// .transfer_settings_word_b.irq = TRANSFER_IRQ_END, ?
→//傳輸完成后中斷
// .transfer_settings_word_b.chain_mode = TRANSFER_CHAIN_MODE_
→DISABLED,//不使能(DMAC 沒有該功能,僅 DTC 有)
// .transfer_settings_word_b.src_addr_mode = TRANSFER_ADDR_MODE_FIXED,?
→//每次傳輸后,源地址指針固定不變
// .transfer_settings_word_b.size = TRANSFER_SIZE_2_BYTE, ?
→//每次傳輸 2 字節(jié)
// .transfer_settings_word_b.mode = TRANSFER_MODE_NORMAL, ?
→//正常傳輸模式
// .p_dest = (void *) DST_Buffer, ?
→//目標(biāo)地址
// .p_src = (void const *) SRC_Buffer,
→//源地址
// .num_blocks = 0, //指定傳輸?shù)膲K數(shù)(正常模式下無效,僅在重復(fù)、塊或
重復(fù)-塊模式下有效)
// .length = 1, //指定傳輸?shù)拈L(zhǎng)度(即正常和重復(fù)模式下的傳輸次數(shù)?
→或 塊和重復(fù)-塊模式下傳輸?shù)膲K大小)
//};
// 按照上述傳輸信息配置,期待的正確傳輸結(jié)果為:
uint32_tExpected_DST_Buffer[BUFFER_SIZE] = {
0x00000304,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00000000};

可以看到,上述代碼中的傳輸信息結(jié)構(gòu)體變量fsp_transfer_info_normal被完全注釋掉了,因?yàn)樵诒纠讨校肋h(yuǎn)不會(huì)用到該變量,即使取消了注釋也是一樣,雖然取消注釋后編譯也不會(huì)報(bào)錯(cuò)。該變量在這里的目的僅是方便與我們之前在FSP配置界面上的傳輸配置進(jìn)行比較,兩者的配置基本上是等效的。

本例程中需要用到的是Expected_DST_Buffer數(shù)組,其中保存的數(shù)據(jù)是根據(jù)源數(shù)據(jù)SRC_Buffer和當(dāng)前的傳輸配置得出的正確結(jié)果,我們?cè)谶M(jìn)行實(shí)際上的傳輸結(jié)束后也應(yīng)該在DST_Buffer數(shù)組中獲得這樣的數(shù)據(jù)。換句話說,SRC_Buffer保存了要傳輸?shù)脑磾?shù)據(jù),DST_Buffer保存了傳輸后的實(shí)際結(jié)果,Expected_DST_Buffer則保存的是傳輸后的正確結(jié)果,后面還會(huì)通過DST_Buffer與Expected_DST_Buffer數(shù)組中數(shù)據(jù)的對(duì)比,來判斷傳輸是否成功。

19.7.1.6

使用代碼配置:正常傳輸模式

下面是DMAC在正常模式下傳輸?shù)呐渲么a:

列表5:代碼清單20?4 DMAC正常傳輸模式配置

左右滑動(dòng)查看完整內(nèi)容

/* 正常傳輸模式 */
transfer_info_tmy_transfer_info_normal =
{
.transfer_settings_word_b.dest_addr_mode = TRANSFER_ADDR_MODE_
→INCREMENTED,//每次傳輸后,目標(biāo)地址指針都會(huì)增加
.transfer_settings_word_b.repeat_area = TRANSFER_REPEAT_AREA_SOURCE,
→//源區(qū)域重復(fù) (正常模式下無效)
.transfer_settings_word_b.irq = TRANSFER_IRQ_END, ?
→//傳輸完成后中斷
.transfer_settings_word_b.chain_mode = TRANSFER_CHAIN_MODE_
→DISABLED,//不使能(DMAC 沒有該功能,僅 DTC 有)
.transfer_settings_word_b.src_addr_mode = TRANSFER_ADDR_MODE_
→INCREMENTED,//每次傳輸后,源地址指針都會(huì)增加
.transfer_settings_word_b.size = TRANSFER_SIZE_4_BYTE, ?
→//每次傳輸 4 字節(jié)
.transfer_settings_word_b.mode = TRANSFER_MODE_NORMAL, ?
→//正常傳輸模式
.p_dest = (void*) DST_Buffer, ?
→//目標(biāo)地址
.p_src = (voidconst *) SRC_Buffer, ?
→//源地址
.num_blocks =0,//指定傳輸?shù)膲K數(shù)(正常模式下無效,僅在重復(fù)、塊或重
復(fù)-塊模式下有效)
.length = BUFFER_SIZE,//指定傳輸?shù)拈L(zhǎng)度(即正常和重復(fù)模式下的傳輸次數(shù) 或?
→塊和重復(fù)-塊模式下傳輸?shù)膲K大?。?};
// 按照上述傳輸信息配置,期待的正確傳輸結(jié)果為:
uint32_tExpected_DST_Buffer[BUFFER_SIZE] = {
0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,
0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,
0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,
0x31323334,0x35363738,0x393A3B3C,0x3D3E3F40,
0x41424344,0x45464748,0x494A4B4C,0x4D4E4F50,
0x51525354,0x55565758,0x595A5B5C,0x5D5E5F60,
0x61626364,0x65666768,0x696A6B6C,0x6D6E6F70,
0x71727374,0x75767778,0x797A7B7C,0x7D7E7F80};

在本例程中使用以上代碼需在頭文件“bsp_dmac_m2m.h”中定義宏USE_MY_TRANSFER_INFOR_CONFIG,并且 定義宏DMAC_TRANSFER_MODEDMAC_TRANSFER_NORMAL_MODE來選擇。傳輸模式為:正常傳輸模式

傳輸信息結(jié)構(gòu)體變量my_transfer_info_normal用于對(duì)DMAC的傳輸進(jìn)行重配置。

讀者可跳到本章后面的“下載驗(yàn)證”小節(jié),編譯并下載程序來驗(yàn)證本實(shí)驗(yàn)例程運(yùn)行結(jié)果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    39

    文章

    7737

    瀏覽量

    171629
  • 瑞薩
    +關(guān)注

    關(guān)注

    37

    文章

    22481

    瀏覽量

    90819
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67490
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    581

    瀏覽量

    105910

原文標(biāo)題:定義傳輸源和目標(biāo)存儲(chǔ)器——瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南(55)

文章出處:【微信號(hào):瑞薩嵌入式小百科,微信公眾號(hào):瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RA系列MCU FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南(09)存儲(chǔ)器映射

    3.3 存儲(chǔ)器映射 前文所述,寄存與RAM、FLASH一樣都是芯片內(nèi)部的一種存儲(chǔ)設(shè)備。那么,當(dāng)我們需要訪問它們的時(shí)候,我們需要知道它們的存儲(chǔ)地址。 3.3.1
    的頭像 發(fā)表于 04-16 15:52 ?1588次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b>MCU <b class='flag-5'>FSP</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b><b class='flag-5'>指南</b>(09)<b class='flag-5'>存儲(chǔ)器</b>映射

    RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南DTC外部中斷觸發(fā)傳輸實(shí)驗(yàn)

    本實(shí)驗(yàn)的目標(biāo)是使用外部中斷來觸發(fā)DTC傳輸,因此需要用到一個(gè)按鍵。
    的頭像 發(fā)表于 12-26 09:32 ?3941次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>DTC外部中斷觸發(fā)<b class='flag-5'>傳輸</b>實(shí)驗(yàn)

    RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南I2C讀寫EEPROM實(shí)驗(yàn)

    使用官方提供的FPS庫(kù)進(jìn)行編程,官方提供的FPS庫(kù)具有方便、快捷、簡(jiǎn)潔的特性。
    的頭像 發(fā)表于 01-27 10:02 ?3411次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C讀寫EEPROM實(shí)驗(yàn)

    RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南常用存儲(chǔ)器介紹

    存儲(chǔ)器是計(jì)算機(jī)結(jié)構(gòu)的重要組成部分。存儲(chǔ)器是用來存儲(chǔ)程序代碼和數(shù)據(jù)的部件,有了存儲(chǔ)器計(jì)算機(jī)才具有記憶功能?;镜?b class='flag-5'>存儲(chǔ)器種類見圖21_1。
    的頭像 發(fā)表于 01-12 06:21 ?7180次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>常用<b class='flag-5'>存儲(chǔ)器</b>介紹

    e2studio(1)----芯片搭建FSP環(huán)境

    視頻教學(xué) 樣品申請(qǐng) 請(qǐng)勿添加外鏈 e2studio軟件 e2studio是的集成開發(fā)環(huán)境,FSP 提供了眾多可提高效率的工具,用于開發(fā)
    發(fā)表于 09-30 15:28

    RA6E2地奇星開發(fā)板試用】介紹、環(huán)境搭建、工程測(cè)試

    RA6E2開發(fā)板 - 立創(chuàng)開源硬件平臺(tái) . 開發(fā)環(huán)境 開發(fā)環(huán)境支持 e^2^ studio 和 Keil ,這里主要介紹和使用前者。 下載并安裝
    發(fā)表于 12-07 15:27

    RA4系列開發(fā)板體驗(yàn)】開發(fā)環(huán)境搭建和新手點(diǎn)燈指南

    RA4系列開發(fā)板體驗(yàn)】開發(fā)環(huán)境搭建和新手點(diǎn)燈指南
    發(fā)表于 11-24 22:54

    RA4系列開發(fā)板體驗(yàn)】10. 我的試用總結(jié)

    之前發(fā)帖:【RA4系列開發(fā)板體驗(yàn)】1. 新建工程+按鍵控制LED【
    發(fā)表于 12-10 22:34

    RA4系列開發(fā)板體驗(yàn)】1、開發(fā)板要來了(1)

    了,先體現(xiàn)進(jìn)行一下準(zhǔn)備工作。由于板子還沒有到手,咱們主要先了解一下開發(fā)環(huán)境。RA系列的單片機(jī)有一個(gè)自己的
    發(fā)表于 12-12 17:04

    RA4系列開發(fā)板體驗(yàn)】體驗(yàn)過程

    拿到板子之后,做了幾個(gè)實(shí)驗(yàn)過程,過程如下:1、在好奇心驅(qū)動(dòng)下,逐步接觸;參照網(wǎng)上的實(shí)例,學(xué)習(xí)開發(fā)環(huán)境一、開箱驗(yàn)貨二、搭建環(huán)境參考“ 【
    發(fā)表于 12-18 16:20

    推出SH7216系列32-位片上Flash存儲(chǔ)器MCU

    推出SH7216系列32-位片上Flash存儲(chǔ)器MCU作者:時(shí)間:2009-04-21來:電子產(chǎn)品世界字號(hào):?小?中?大關(guān)鍵詞:?
    發(fā)表于 12-02 09:51 ?11次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>推出SH7216<b class='flag-5'>系列</b>32-位片上Flash<b class='flag-5'>存儲(chǔ)器</b>MCU

    【有獎(jiǎng)直播預(yù)報(bào)名】電子RA系列產(chǎn)品開發(fā)工具FSP4.0.0新特性介紹

    為使用電子RA系列ARM微控制的嵌入式系統(tǒng)設(shè)計(jì)提供簡(jiǎn)單易用且可擴(kuò)展的高質(zhì)量軟件。 直播主題
    的頭像 發(fā)表于 11-22 12:20 ?1515次閱讀

    【視頻教程】RA單片機(jī)FSP開發(fā)(3)FSP架構(gòu)-解釋Blinky架構(gòu)[上]

    干貨分享 前篇回顧 【視頻教程】RA單片機(jī)FSP開發(fā)(1)環(huán)境搭建(帶RASC) 【視頻教程】
    的頭像 發(fā)表于 12-06 12:15 ?1902次閱讀

    使用e2 studio FSP基于RA2E1定時(shí)配置PWM輸出

    使用e2 studio FSP基于RA2E1定時(shí)配置PWM輸出
    的頭像 發(fā)表于 08-01 00:13 ?1979次閱讀
    使用<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>e2 studio <b class='flag-5'>FSP</b>基于<b class='flag-5'>RA</b>2E1定時(shí)<b class='flag-5'>器</b>配置PWM輸出

    電子RA系列微控制的可擴(kuò)展性強(qiáng)的配置軟件包 (FSP)安裝下載與使用指南

    電子RA系列微控制的可擴(kuò)展性強(qiáng)的配置軟件包 (FSP)安裝下載與使用
    的頭像 發(fā)表于 06-11 17:21 ?1834次閱讀