(筆記) 常用設定暫存器值的編程技巧 (SOC) (C/C++) (C) (Verilog)

Abstract
設定暫存器值是寫firmware時最常見的控制,本文歸納出C語言在寫firmware時常見的編程技巧,並與Verilog相互對照。

Introduction
本文將討論以下主題:

1.將某bit強制設為1

2.將某bit強制設為0

3.將某bit做toggle (0變1,1變0)

4.判斷某bit是否為1

5.判斷某bit是否為0

1.將某bit強制設為1

C語言

Verilog

2.將某bit強制設為0

C語言

Verilog

3.將某bit做toggle (0變1,1變0)

C語言

Verilog

4.判斷某bit是否為1

C語言

Verilog

5.判斷某bit是否為0

C語言

Verilog

全文完。

Original: https://www.cnblogs.com/oomusou/archive/2011/10/02/register_c_verilog.html
Author: 真 OO无双
Title: (筆記) 常用設定暫存器值的編程技巧 (SOC) (C/C++) (C) (Verilog)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535028/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 聊聊 C++ 中的四种类型转换符

    一:背景 在玩 C 的时候,经常会用 void* 来指向一段内存地址开端,然后再将其强转成尺度更小的 char* 或 int* 来丈量一段内存,参考如下代码: int main()…

    C++ 2023年5月29日
    069
  • C++11 静态断言 static_assert

    我们知道,C++现有的标准中就有assert、#error两个方法是用来检查错误的,除此而外还有一些第三方的静态断言实现。 assert是运行期断言,它用来发现运行期间的错误,不能…

    C++ 2023年5月29日
    046
  • 右值引用与转移语义(C++11)

    参考资料: 左值和右值定义: C++( 包括 C) 中所有的表达式和变量要么是左值,要么是右值。通俗的 左值的定义就是非临时对象(可以取地址,有名字),那些可以在多条语句中使用的对…

    C++ 2023年5月29日
    069
  • C/C++中static,const,inline三种关键字的总结(参照网络)

    一、 关于staticstatic 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符…

    C++ 2023年5月29日
    066
  • c++的对象初始化

    忍不住了,不得不吐槽一下,妈的,太复杂了,真难,搞得太复杂了,看不懂,看不懂,真的越来越复杂了,没有必要啊! 看得了头皮发麻,搞不明白,咱又不是干编译器的,投降了。 工程代码中,代…

    C++ 2023年5月29日
    049
  • c++ 异常 warning: ‘MEMORY_UNIT_NAME’ defined but not used

    是开关的问题 , 将 #-g -O2 -pipe -W -Wall -Werror -fPIC -Wno-deprecated c++ 去掉。不检查。 Original: http…

    C++ 2023年5月29日
    068
  • C++:vector中的resize()函数 VS reserve()函数

    http://www.cplusplus.com/reference/vector/vector/vector/ 写代码的时候无意错用了这两个函数 导致测试的时候,程序运行崩溃 发…

    C++ 2023年5月29日
    053
  • c++ 条件变量

    http://blog.csdn.net/hemmanhui/article/details/4417433 互斥锁:用来上锁。 条件变量:用来等待,当条件变量用来自动阻塞一个线程…

    C++ 2023年5月29日
    042
  • 【C++】第1章 在VS2015中用C++编写控制台应用程序

    分类:C++、VS2015 创建日期:2016-06-12 看到不少人至今还在用VC 6.0开发工具学习C++,其实VC 6.0开发工具早就被淘汰了。这里仅介绍学习C++时推荐使用…

    C++ 2023年5月29日
    067
  • C++11 并发指南后续更新

    C++11 并发指南的第一篇是 2013 年 8 月 3 号写的,到今天(2013 年 8 月 31 号)差不多一个月了,前前后后共写了 8 篇博客介绍 C++11 的并发编程,但…

    C++ 2023年5月29日
    076
  • C++ 回调函数详解

    1、什么是回调函数回调函数本质上也是普通函数,只是调用机制有所区别——首先通过传参的形式将该函数的地址传递给其他函数,然后在其他函数中通过函数指针调用该函数。在其他函数中通过函数指…

    C++ 2023年5月29日
    071
  • UML——从类图到C++

    简易软件开发流程 实践中,use case and description、class diagram与sequence diagram三者搭配,几乎是UML项目的基本类型,所以在…

    C++ 2023年5月29日
    076
  • 【转】C++智能指针的正确使用方式

    对象所有权 首先需要理清楚的概念就是对象所有权的概念。所有权在 rust 语言中非常严格,写 rust 的时候必须要清楚自己创建的每个对象的所有权。 但是 C++ 比较自由,似乎我…

    C++ 2023年5月29日
    054
  • std::get<C++11多线程库~线程间共享数据>(10):使用互斥量保护共享数据(4)

    1 #ifndef DEADLOCK_QUESTIONDESCRIBLE_AND_SOLUTION_H 2 #define DEADLOCK_QUESTIONDESCRIBLE_A…

    C++ 2023年5月29日
    053
  • C++11 并发指南七(C++11 内存模型一:介绍)

    第六章主要介绍了 C++11 中的原子类型及其相关的API,原子类型的大多数 API 都需要程序员提供一个 std::memory_order(可译为内存序,访存顺序) 的枚举类型…

    C++ 2023年5月29日
    051
  • c++11并行、并发与多线程编程

    首先,我们先理解并发和并行的区别。 你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃…

    C++ 2023年5月29日
    052
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球