chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

添加原子操作到4.0.2版本

冬至子 ? 來(lái)源:redoc ? 作者:redoc ? 2023-09-06 15:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

0.概述
原子操作很好用,在兩三個(gè)小線程要同步變量時(shí),非常方便不占用中斷,也不用資源。但是原子操作只有5.0.0版本上面才有,基于現(xiàn)有工程使用升級(jí)內(nèi)核不太現(xiàn)實(shí),所以要添加一下。
現(xiàn)在的版本是4.0.2,芯片為stm32f407,以下均為在rt-thread文件夾下的更改。附件增加了文件,也可以從5.0版本拉下來(lái)。

1.增加文件
增加/libcpu/arm/commom/atomic_arm.c,增加/include/rtatomic.h,添加arm硬件原子操作源文件,其他架構(gòu)添加對(duì)應(yīng)的。

2.修改rtdef.h
增加代碼段,添加原子操作定義

#if !defined(__cplusplus)
#if defined(RT_USING_STDC_ATOMIC)
#include
typedef atomic_size_t rt_atomic_t;
#elif defined(RT_USING_HW_ATOMIC)
typedef volatile rt_base_t rt_atomic_t;
#else
/* To detect std atomic */
#if defined(RT_USING_LIBC) && defined( GNUC ) && !defined( STDC_NO_ATOMICS )
#include
typedef atomic_size_t rt_atomic_t;
#else
typedef volatile rt_base_t rt_atomic_t;
#endif /*GNUC && ! STDC_NO_ATOMICS/
#endif /
RT_USING_STDC_ATOMIC /
#endif /
__cplusplus */

3.修改rtatomic.h
增加一段頭文件包含,這樣#defined(RT_USING_HW_ATOMIC)才能識(shí)別到

#include

4.修改libcpu/Kconfig
增加芯片硬件原子操作定義RT_USING_HW_ATOMIC

config RT_USING_HW_ATOMIC
bool
default n
config ARCH_ARM
bool
config ARCH_ARM_CORTEX_M
bool
select ARCH_ARM
config ARCH_ARM_CORTEX_FPU
bool
config ARCH_ARM_CORTEX_M0
bool
select ARCH_ARM_CORTEX_M
config ARCH_ARM_CORTEX_M3
bool
select ARCH_ARM_CORTEX_M
select RT_USING_HW_ATOMIC
config ARCH_ARM_MPU
bool
depends on ARCH_ARM
config ARCH_ARM_CORTEX_M4
bool
select ARCH_ARM_CORTEX_M
select RT_USING_HW_ATOMIC
config ARCH_ARM_CORTEX_M7
bool
select ARCH_ARM_CORTEX_M
select RT_USING_HW_ATOMIC
config ARCH_ARM_CORTEX_R
bool
select ARCH_ARM
select RT_USING_HW_ATOMIC
config ARCH_ARM_MMU
bool
depends on ARCH_ARM
config ARCH_ARM_ARM9
bool
select ARCH_ARM
config ARCH_ARM_ARM11
bool
select ARCH_ARM
config ARCH_ARM_CORTEX_A
bool
select ARCH_ARM
select RT_USING_HW_ATOMIC

4.修改libcpu/SConscript
增加刪去原子操作的定義

if rtconfig.PLATFORM == 'armcc' and rtconfig.ARCH == 'arm' and rtconfig.CPU == 'arm926':
ASFLAGS = ' --cpreproc'
/* 增加內(nèi)容 */
if not GetDepend('RT_USING_HW_ATOMIC'):
SrcRemove(src, Glob(comm + 'atomic_arm.c'))
CPPPATH = [RTT_ROOT + '/libcpu/' + arch + '/' + rtconfig.CPU, RTT_ROOT + '/libcpu/' + arch + '/common']

5.實(shí)現(xiàn)
menuconfig一下,然后構(gòu)建工程。

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

    關(guān)注

    6

    文章

    361

    瀏覽量

    42605
  • STM32F407
    +關(guān)注

    關(guān)注

    15

    文章

    188

    瀏覽量

    30574
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1403

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    詳解Linux內(nèi)核鎖的原子操作

    原子操作(atomic operation),不可分割的操作。其通過(guò)原子變量來(lái)實(shí)現(xiàn),以保證單個(gè)CPU周期內(nèi),讀寫(xiě)該變量,不能被打斷,進(jìn)而判斷該變量的值,來(lái)解決并發(fā)引起的互斥。
    發(fā)表于 07-04 11:16 ?835次閱讀

    在04版本中如何給自己畫(huà)的元件添加封裝形式

    請(qǐng)教一下各位大俠,在04版本中,自己畫(huà)的原理圖元件,如何給它添加封裝形式呢?當(dāng)然我是指如何給它添加自帶的封裝形式
    發(fā)表于 08-05 20:59

    原子操作指令的作用

    本帖最后由 ycd37850105 于 2016-9-18 21:41 編輯 我們把單指令的操作稱為原子操作(Atomic),因?yàn)闊o(wú)論如何,單條指令的執(zhí)行是不會(huì)被打斷的。很多體系結(jié)構(gòu)都提供了
    發(fā)表于 09-18 21:39

    請(qǐng)問(wèn)CCS V6版本在Tiva C Series TMC123G launchpad中如何添加文件?

    本帖最后由 一只耳朵怪 于 2018-6-11 11:56 編輯 在線學(xué)習(xí)金爾雅老師的CCS學(xué)習(xí)視頻時(shí)老師用的是CCS V5版本的而現(xiàn)在官網(wǎng)下載的是v6版本的兩者在一些學(xué)習(xí)過(guò)程中有很大不同?。?! 這個(gè)添加文件怎么弄v
    發(fā)表于 06-11 01:12

    UCOS怎么實(shí)現(xiàn)原子操作

    目前有個(gè)全局變量和數(shù)字,需要在中斷函數(shù)中和任務(wù)中都要訪問(wèn),請(qǐng)問(wèn)各位大神UCOS怎么實(shí)現(xiàn)原子操作?網(wǎng)上搜索一圈沒(méi)發(fā)現(xiàn)實(shí)例呢,是大家都不用原子操作
    發(fā)表于 05-20 09:57

    RT-Thread4.0版本操作emmc總線寬度無(wú)法自動(dòng)識(shí)別是為什么

    mmc.c文件里面函數(shù)mmc_select_bus_width兩個(gè)版本區(qū)別為上圖,3.1版本有正常bus_width寬度的切換,4.0版本沒(méi)沒(méi)有對(duì)該變量進(jìn)行賦值所以總線寬度無(wú)法自動(dòng)識(shí)別,實(shí)測(cè)3.1
    發(fā)表于 04-27 09:45

    請(qǐng)問(wèn)RT-Thread 4.0.5版本把libc文件夾放到哪里了呀?

    rt-thread 4.0.5版本新建工程后再rt-thread/include文件夾下沒(méi)有l(wèi)ibc文件夾用4.0.2和4.0.3版本新建工程則有l(wèi)ibc文件夾。工程中用到了libc文件夾下的libc_ioctl.h文件。請(qǐng)問(wèn)4
    發(fā)表于 02-17 10:42

    Studio環(huán)境下修改工程的系統(tǒng)版本為4.0.3,為什么板端還顯示4.0.2?

    顯示的版本號(hào)和打version顯示的rt-thread版本號(hào)還都是4.0.2,請(qǐng)問(wèn)是怎么回事呢?多謝。。。
    發(fā)表于 05-11 14:24

    基于多線程環(huán)境下值的遞增操作--原子操作

    因此在多線程環(huán)境中對(duì)一個(gè)變量進(jìn)行讀寫(xiě)時(shí),我們需要有一種方法能夠保證對(duì)一個(gè)值的遞增操作原子操作——即不可打斷性,一個(gè)線程在執(zhí)行原子操作時(shí),其
    的頭像 發(fā)表于 01-10 11:16 ?6385次閱讀
    基于多線程環(huán)境下值的遞增<b class='flag-5'>操作</b>--<b class='flag-5'>原子</b><b class='flag-5'>操作</b>

    微軟確認(rèn)在Win10 RS4版本更新中添加PWA支持

    近日,微軟正式宣布會(huì)在 Windows 10 Redstone 4版本中帶PWA應(yīng)用程序的全面支持。 先來(lái)解釋一下什么叫PWA(Progressive Web App)。PWA 其實(shí)是在普通的移動(dòng)
    的頭像 發(fā)表于 02-18 20:54 ?5885次閱讀

    淺談鴻蒙內(nèi)核源碼的原子操作

    ARMv6架構(gòu)引入了LDREX和STREX指令,以支持對(duì)共享存儲(chǔ)器更縝密的非阻塞同步。由此實(shí)現(xiàn)的原子操作能確保對(duì)同一數(shù)據(jù)的“讀取-修改-寫(xiě)入”操作在它的執(zhí)行期間不會(huì)被打斷,即操作
    的頭像 發(fā)表于 04-25 16:05 ?1485次閱讀
    淺談鴻蒙內(nèi)核源碼的<b class='flag-5'>原子</b><b class='flag-5'>操作</b>

    包裝/組裝合格測(cè)試報(bào)告:塑封最低操作規(guī)程(QTR:02016版本:01)

    包裝/組裝合格測(cè)試報(bào)告:塑封最低操作規(guī)程(QTR:02016版本:01)
    發(fā)表于 04-24 18:16 ?0次下載
    包裝/組裝合格測(cè)試報(bào)告:塑封最低<b class='flag-5'>操作</b>規(guī)程(QTR:02016<b class='flag-5'>版本</b>:01)

    Altium Designer 21版本操作界面環(huán)境

    相對(duì)于Altium Designer以前的版本,21版本給用戶提供了一個(gè)更加人性化、更加集成化的操作界面環(huán)境,如圖2-9所示,主要包含菜單欄、工具欄、面板控制區(qū)、用戶工作區(qū)等,其中工具欄、菜單欄的項(xiàng)目顯示會(huì)跟隨用戶
    的頭像 發(fā)表于 08-09 11:37 ?4335次閱讀

    使用Linux原子操作實(shí)現(xiàn)互斥點(diǎn)燈

    Linux原子操作是指不能再進(jìn)一步分割的操作,一般原子操作用于變量或者位操作。Linux內(nèi)核定義
    的頭像 發(fā)表于 04-13 15:07 ?1154次閱讀
    使用Linux<b class='flag-5'>原子</b><b class='flag-5'>操作</b>實(shí)現(xiàn)互斥點(diǎn)燈

    motorBench 2.45.0版本說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《motorBench 2.45.0版本說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 01-22 16:15 ?0次下載
    motorBench 2.45.0<b class='flag-5'>版本</b>說(shuō)明