启用并测试 UART 的本地环回

2023-12-13

我正在尝试进行 UART 内部环回测试并提出以下更改

 #include <fcntl.h>
 #include <stdio.h>
 #include <termios.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include <sys/mman.h>
 #include <sys/errno.h>
 #include <sys/types.h>
 #include <unistd.h>


 #define CCSR_BASE  0xfe000000
 #define UART1_BASE 0x11c000
 #define UART1_LEN  0x1000

 static volatile unsigned long  *uartReg = MAP_FAILED;

/* Map in registers. */
static unsigned long  *initMapMem(int fd, unsigned long addr, unsigned long len)
{
     return (unsigned long *) mmap(0, len,
            PROT_READ|PROT_WRITE|PROT_EXEC,MAP_SHARED|MAP_LOCKED, fd, addr);
}

int uartInitialise(void)
{
    int fd;
    int i;

    fd = open("/dev/mem", O_RDWR | O_SYNC) ;

    if (fd < 0)
       {
           fprintf(stderr,"This program needs root privileges.Try sudo /n");
           return -1;
       }

   uartReg  = initMapMem(fd, ((CCSR_BASE) + (UART1_BASE))  , UART1_LEN);

   /* In local loop back mode, data written to UTHR(8 bit) can be read from the 
      receiver buffer register(URBR 8 bit) of the same UART. */

 //    *(uartReg + 0x605 )  = 0x0;

       *(uartReg + (0x600)) = 0xf;

       printf("UART_REG : %#x\n", *(int *)(uartReg + (0x600)); /*Expecting 0xf to read here if loop back mode is set */

       close(fd);

  if (uartReg == MAP_FAILED)
     {
        fprintf(stderr,"Bad, mmap failed\n");
        return -1;
     }

    return 0;
}

 int main()
 {
    int pins;
    int f = open( "/dev/ttyS1", O_RDWR);

    if (f< 0)
    {
        printf("\nout");
        close(f);
     }   

    ioctl( f, TIOCMGET, &pins);
    ioctl( f, TIOCMSET, pins | TIOCM_LOOP);

    if (uartInitialise() < 0) return 1;

    sleep(5);

   ioctl( f, TIOCMGET, &pins);
   ioctl( f, TIOCMSET, pins & ~ TIOCM_LOOP);

 }

root@amit:~# ./loop_back

UART_REG:0

但我没有得到预期的输出,任何人都可以指出我需要做什么才能进行 UART 内部环回测试吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启用并测试 UART 的本地环回 的相关文章

随机推荐

  • 奇怪的 Apache2.2 SVN 错误,“预期存储库格式‘3’或‘5’;发现格式‘9’”

    我有一个存储库 我可以使用 TortoiseSVN 从运行 Subversion win32 服务的同一台计算机上访问该存储库 并且它已经工作了一段时间了 我决定尝试设置 mod dav svn 以便能够从其他地方获取它 当我尝试访问它时
  • 如何在Android M中检查单个请求的多个权限?

    我想使用 android permission CAMERA android permission WRITE EXTERNAL STORAGE 在单个请求中使用 ActivityCompat requestPermissions Acti
  • 使用 NSWorkspace 关闭文件

    我的要求是打开一个 pdf ppt 等文件并在 20 分钟后关闭它 感谢 NSWorkspace 我能够正确打开这些文件 但我怎样才能关闭这些文件呢 NSWorkspace 似乎没有 close 方法 NSWorkspace只是要求操作系统
  • 从Python中线程中的函数获取返回值[重复]

    这个问题在这里已经有答案了 我编写了一个使用多线程的 Python 函数 def image link ID tid1 Thread target displayImage args link ID tid2 Thread target p
  • TypeScript 中静态方法的抽象方法版本

    我正在使用打字稿创建数据模型范例 我将不同类型的数据存储在不同的地方 SQL 本地缓存 我想创建一个抽象类 其中包含任何类型的数据存储所需的所有方法 创建 查找 更新 计数 销毁 这样我就可以扩展该类并针对不同类型的存储以不同的方式实现它
  • 加载了错误的 App.config

    我构建了一个 NET 3 5 类库 它读取 App config 文件以获取所需的值 当我在 Visual Studio 中测试它时 它可以很好地提取配置值 为了测试它 我只需将项目更改为控制台应用程序并执行方法调用 我需要从许多其他 NE
  • 从密钥库加载证书

    从受密码保护的密钥库加载证书和密钥 然后将其用于证书验证和数字签名 阅读证书真的很简单 CertificateFactory factory CertificateFactory getInstance X 509 X509Certific
  • php计算浮点数

    我这里有一个奇怪的数学计算 我希望有人能解释一下 a 1 85 100 b 1 5 100 c 1 1 100 d 0 4 100 e 0 4 100 f 0 4 100 g 0 4 100 h a b c d e f g echo h 1
  • 在opencv中读取像素的HSV值

    你会如何读取 HSV 格式而不是 RGB 格式的像素值 下面的代码以 RGB 格式读取圆心的像素值 HSV 的读数值有很大差异吗 int main int argc char argv load image from directory I
  • 使用 Gradle 有条件地在 AndroidManifest.xml 上添加 标记

    我有一个应用程序 仅具有用户无法直接访问的服务 接收器和活动 没有启动器活动 但现在我必须添加一个活动用作启动器活动BUT仅当应用程序在构建期间设置了某些特定变量时 才必须存在此启动器活动 所以基本上 当调用 gradle build 时
  • 如何访问此复杂 JSON 中的嵌套数据(其中包含另一个 JSON 文档作为字符串之一)?

    我有一些 JSON 数据 例如 status 200 msg data time 1515580011 video info announcement announcement id 6 name INS u8d26 u53f7 icon
  • MySql触发器删除同表中的子记录

    我有一个表 其中存储父记录和子记录 我试图创建一个触发器 在删除父记录时删除所有子记录 Delete From tbl Where ParentId OLD Id 虽然我可以成功保存触发器 但在删除时出现此错误 错误 1442 无法更新存储
  • 从 .net 代码停止 SQL 查询执行

    我正在从 net 代码执行一个存储过程 由于数据量很大 执行起来需要很长时间 有什么方法可以从 C 代码中停止此执行吗 换句话说 如果我们从数据库本身执行查询 有一个选项可以停止其执行 但在代码中可能吗 是的 sqlcommand canc
  • jQuery 验证 - 使用 AJAX 调用验证电子邮件

    我有一个邀请表单 该表单只能接受由 GMail 处理的电子邮件 我正在尝试插入异步验证 但不确定应该从服务器返回什么以及要使用哪些 Javascript 处理程序 如果有人输入 Yahoo 电子邮件 我想在电子邮件输入字段旁边显示 不是 G
  • 将照片填充到 html div 的 php 脚本

    我目前有一个大约 250 jpeg 的图片页面 图像 我目前有一个网页 我在其中手动将图片分配给页面上的某个部分 但是这非常耗时 并且希望创建一个脚本来运行并将图像分配给 div 虽然这通常很容易 但我的问题是他们提交图像的方式 在网页上
  • ioslides markdown 演示幻灯片中的全尺寸闪亮应用程序

    试图弄清楚如何在 ioslides markdown 中拥有一个全尺寸的闪亮应用程序 我有一些东西几乎可以工作 但它有点临时 我也不相信当我在更高分辨率的屏幕上显示演示文稿时它会重现 因为我使用px in the div title My
  • 如何修复返回编码的 Youtube API 结果标题

    我在用着youtube 搜索 1 1 4查找视频 问题是我得到的结果标题编码为 amp or 39 而不仅仅是 and 和更多 我从下面的示例代码中得到的一个结果的示例 再次 故意在字符之间添加空格 title Post Malone qu
  • AWS EC2 实例无法连接到 bitbucket.org

    EC2 Details OS Ubuntu 16 04 Git client git version 2 7 4 Issue 我无法从 AWS 实例连接到 bitbucket org 存储库 尝试 ping bitbucket org 但没
  • Angular 2 路由在新选项卡中运行

    我正在使用 angular2 处理 ASP NET Core 应用程序 并且我的路由工作正常 a target self Associates a a Account managers a 我想在新选项卡中打开每个页面链接 routerLi
  • 启用并测试 UART 的本地环回

    我正在尝试进行 UART 内部环回测试并提出以下更改 include