X1000_M200_MXU-User-Guide

1. 简介
工具链中MXU指令以内嵌汇编的方式提供。MXU有16个32bit 通用寄存器(xr0~xr15),一个32bit控制寄存器(xr16)。使用工具链中的 MXU 宏定义时需要程序员手动选择要使用的 MXU 寄存器。如Q16ADD_AA_WW(xr1,xr2,xr3,xr4),其中 Q16ADD_AA_WW 是内嵌汇编宏,xr1,xr2,xr3,xr4 是寄存器编号。指令的使用请详见附录,寄存器和内嵌汇编宏的定义请详见工具链中的 jzmedia.h (PATH_toolchain/mips-linux-gnu/libc/usr/include/jzmedia.h)。

● 使用 MXU 的内嵌汇编宏需要引用 jzmedia.h

● 使用 MXU 指令,在编译时需要添加“-mmxu” 编译选项。
● 使用 MXU 指令,在反汇编时需要添加“-Mmxu” 选项。

2. 指令使用举例
以 Q16ADD 指令为例

/* test.c */
#include <stdio.h>
#include <jzmedia.h>
void main()
{
short src1 [2] = { 1 , 2 };
short src2 [2] = { 10,20 };
short dst1 [2] ;
short dst2 [2] ;
S32LDD(xr1, src1, 0);
S32LDD(xr2, src2, 0);
/*调用 Q16ADD 指令,其中
EPTN2 :AA(00),表示加加运算,
OPTN2:WW(00),表示高位与高位,低位与低位操作
Operation:
xr4 = {xr1.l+xr2.l, xr1.h+xr2.h};
xr3= {xr1.l+xr2.l, xr1.h+xr2.h};*/
Q16ADD_AA_WW(xr4,xr2,xr1,xr3);
S32STD(xr3, dst1, 0);
S32STD(xr4, dst2, 0);
printf(" dst1[0] is %d, dst1[1] is %d\n", dst1[0], dst2[1]);
printf(" dst2[0] is %d, dst2[1] is %d\n", dst2[0], dst2[1]);
}

编译:
$ mips-linux-gnu-gcc test.c -o test -mmxu
反汇编:
$ mips-linux-gnu-objdump -D test -Mmxu
运行:
$./test
dst1[0] is 11, dst1[1] is 22
dst2[0] is 11, dst2[1] is 22

3. X1000附录
MXU 指令具体含义及使用方法请参考《XBurst_ISA_MXU_PM》,MXU 指令使用列表如下:
注:寄存器名称(xra,xrb,xrc,xrd...)为示例,不代表真实寄存器。

D16MUL_WW(xra,xrb,xrc,xrd);
D16MUL_HW(xra,xrb,xrc,xrd);
D16MUL_LW(xra,xrb,xrc,xrd);
D16MUL_XW(xra,xrb,xrc,xrd);

D16MULF_WW(xra,xrb,xrc);
D16MULF_LW(xra,xrb,xrc);
D16MULF_HW(xra,xrb,xrc);
D16MULF_XW(xra,xrb,xrc);

D16MULE_WW(xra,xrb,xrc,xrd);
D16MULE_LW(xra,xrb,xrc,xrd);
D16MULE_HW(xra,xrb,xrc,xrd);
D16MULE_XW(xra,xrb,xrc,xrd);

D16MAC_AA_WW(xra,xrb,xrc,xrd);
D16MAC_AA_LW(xra,xrb,xrc,xrd);
D16MAC_AA_HW(xra,xrb,xrc,xrd);
D16MAC_AA_XW(xra,xrb,xrc,xrd);

D16MAC_AS_WW(xra,xrb,xrc,xrd);
D16MAC_AS_LW(xra,xrb,xrc,xrd);
D16MAC_AS_HW(xra,xrb,xrc,xrd);
D16MAC_AS_XW(xra,xrb,xrc,xrd);

D16MAC_SA_WW(xra,xrb,xrc,xrd);
D16MAC_SA_LW(xra,xrb,xrc,xrd);
D16MAC_SA_HW(xra,xrb,xrc,xrd);

D16MAC_SA_XW(xra,xrb,xrc,xrd);

D16MAC_SS_WW(xra,xrb,xrc,xrd);
D16MAC_SS_LW(xra,xrb,xrc,xrd);
D16MAC_SS_HW(xra,xrb,xrc,xrd);
D16MAC_SS_XW(xra,xrb,xrc,xrd);

D16MACF_AA_WW(xra,xrb,xrc,xrd);
D16MACF_AA_LW(xra,xrb,xrc,xrd);
D16MACF_AA_HW(xra,xrb,xrc,xrd);
D16MACF_AA_XW(xra,xrb,xrc,xrd);

D16MACF_AS_WW(xra,xrb,xrc,xrd);
D16MACF_AS_LW(xra,xrb,xrc,xrd);
D16MACF_AS_HW(xra,xrb,xrc,xrd);
D16MACF_AS_XW(xra,xrb,xrc,xrd);

D16MACF_SA_WW(xra,xrb,xrc,xrd);
D16MACF_SA_LW(xra,xrb,xrc,xrd);
D16MACF_SA_HW(xra,xrb,xrc,xrd);
D16MACF_SA_XW(xra,xrb,xrc,xrd);

D16MACF_SS_WW(xra,xrb,xrc,xrd);
D16MACF_SS_LW(xra,xrb,xrc,xrd);
D16MACF_SS_HW(xra,xrb,xrc,xrd);
D16MACF_SS_XW(xra,xrb,xrc,xrd);

D16MADL_AA_WW(xra,xrb,xrc,xrd);
D16MADL_AA_LW(xra,xrb,xrc,xrd);
D16MADL_AA_HW(xra,xrb,xrc,xrd);
D16MADL_AA_XW(xra,xrb,xrc,xrd);

D16MADL_AS_WW(xra,xrb,xrc,xrd);
D16MADL_AS_LW(xra,xrb,xrc,xrd);
D16MADL_AS_HW(xra,xrb,xrc,xrd);
D16MADL_AS_XW(xra,xrb,xrc,xrd);

D16MADL_SA_WW(xra,xrb,xrc,xrd);
D16MADL_SA_LW(xra,xrb,xrc,xrd);
D16MADL_SA_HW(xra,xrb,xrc,xrd);
D16MADL_SA_XW(xra,xrb,xrc,xrd);

D16MADL_SS_WW(xra,xrb,xrc,xrd);
D16MADL_SS_LW(xra,xrb,xrc,xrd);

D16MADL_SS_HW(xra,xrb,xrc,xrd);
D16MADL_SS_XW(xra,xrb,xrc,xrd);

S16MAD_A_HH(xra,xrb,xrc,xrd);
S16MAD_A_LL(xra,xrb,xrc,xrd);
S16MAD_A_HL(xra,xrb,xrc,xrd);
S16MAD_A_LH(xra,xrb,xrc,xrd);

S16MAD_S_HH(xra,xrb,xrc,xrd);
S16MAD_S_LL(xra,xrb,xrc,xrd);
S16MAD_S_HL(xra,xrb,xrc,xrd);
S16MAD_S_LH(xra,xrb,xrc,xrd);

Q16ADD_AA_WW(xra,xrb,xrc,xrd);
Q16ADD_AA_LW(xra,xrb,xrc,xrd);
Q16ADD_AA_HW(xra,xrb,xrc,xrd);
Q16ADD_AA_XW(xra,xrb,xrc,xrd);

Q16ADD_AS_WW(xra,xrb,xrc,xrd);
Q16ADD_AS_LW(xra,xrb,xrc,xrd);
Q16ADD_AS_HW(xra,xrb,xrc,xrd);
Q16ADD_AS_XW(xra,xrb,xrc,xrd);

Q16ADD_SA_WW(xra,xrb,xrc,xrd);
Q16ADD_SA_LW(xra,xrb,xrc,xrd);
Q16ADD_SA_HW(xra,xrb,xrc,xrd);
Q16ADD_SA_XW(xra,xrb,xrc,xrd);

Q16ADD_SS_WW(xra,xrb,xrc,xrd);
Q16ADD_SS_LW(xra,xrb,xrc,xrd);
Q16ADD_SS_HW(xra,xrb,xrc,xrd);
Q16ADD_SS_XW(xra,xrb,xrc,xrd);

D16MACE_AA_WW(xra,xrb,xrc,xrd);
D16MACE_AA_LW(xra,xrb,xrc,xrd);
D16MACE_AA_HW(xra,xrb,xrc,xrd);
D16MACE_AA_XW(xra,xrb,xrc,xrd);

D16MACE_AS_WW(xra,xrb,xrc,xrd);
D16MACE_AS_LW(xra,xrb,xrc,xrd);
D16MACE_AS_HW(xra,xrb,xrc,xrd);
D16MACE_AS_XW(xra,xrb,xrc,xrd);

·····················

君正X1000_M200用户手册资料相关推荐

  1. iframe打印excel bold_搭载君正X1000E芯片 中盈SP7080激光打印机现已开售!

    近日,大连中盈科技股份有限公司发布新品SP7080激光打印机,中盈SP7080是一款全新设计的wifi直连激光打印机,拥有全新的设计理念.中盈SP7080支持手机连接.电脑USB线连接,满足用户多样化 ...

  2. 君正4750开发板使用日记2-Linux环境搭建与内核编译

    为什么80%的码农都做不了架构师?>>>    Linux环境搭建与内核编译 上一篇中把4750开发板与PC的硬件连通了,这一篇记录的是基本的Linux环境的搭建.其实官方文档已经比 ...

  3. 尴尬君正,是如何被“创新”带到沟里去的?

    作为创业板的一个标杆,北京君正(300223)上市快三年了.在上市三年之际,重新回顾梳理这样一家集"自主创新""高新科技企业""国产CPU" ...

  4. 君正T20平台生成jffs2格式rootfs

    基于系统升级的考虑,这两天在君正T20平台上折腾如何生成jffs2 格式的rootfs.详细的过程如下: 1.修改uboot中的分区参数: 修改为rootfs格式为jffs2的,且适当扩大rootfs ...

  5. adb shell 调试君正板子

    今天接到一个任务,把现有的代码移植到君正的开发板上. 下面就开始吧. 1 首先,代码移植到君正上,需要交叉编译环境. 需求方已经提供了交叉编译的tar包,直接在linux上解压缩. 然后 指定 CC= ...

  6. 交叉编译-16:live555交叉编译(Windows和君正平台)

    一. 简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编码格式的音视 ...

  7. 君正Magik算法平台介绍

    ------------摘自君正官方<magik_introduce> 00 引言 君正简介,芯片 + AI 算力 + AI 开发平台」方案落地,公布全栈式低功耗 AI 技术 01 Mag ...

  8. 君正X1830芯片性能和处理器介绍

    简介: 君正X1830是一款针对物联网市场的处理器,面向诸如智能音箱,智能网关,语音面板等智能家居领域,以及人脸识别,专业安防,视频会议等行业领域.使用了创新的XBurst架构,可以满足高性能运算以及 ...

  9. opensll zbar交叉编译(君正平台)

    一.OpenSSL 交叉编译: 执行 ./config --prefix=$(pwd)/output no-asm shared 修改Makefile 1.PLATFORM=linux-x86_64 ...

  10. 君正T21 SDK编译注意事项

    君正SDK带有两个编译器,mips-linux-uclibc-gnu- 和 mips-linux-gnu- ,一个采用uclib编译,一个采用glib编译.在整个应用层和系统的编译过程中,需要保持使用 ...

最新文章

  1. javascript知识点
  2. VMM2012应用指南之2- 准备VMM2012虚拟机
  3. 操作系统原理第四章:线程
  4. 几种常用的加密方式简单介绍
  5. NSThread创建线程的三种方法
  6. MyBatis关联查询,表字段相同,resultMap映射问题的解决办法
  7. excel实战应用案例100讲(六)-社会判断理论:模型及应用
  8. CPU Cache对于并发编程的影响
  9. bzoj 4031 [HEOI2015]小Z的房间
  10. 今天开通android博客 该认真学习了
  11. php curl 请求失败,PHP CURL库之GET、POST数据大小限制导致请求失败解决方案
  12. PHP foreach使用 引用 的坑
  13. 微信公众号开发C#系列-11、生成带参数二维码应用场景
  14. 实现用python刷王者荣耀金币
  15. 局域网限速软件_复工复学活力加倍、办公类软件最低 6 折再来袭!
  16. Java之图片裁剪工具类-yellowcong
  17. 使用CSS实现文字的两端对齐方式
  18. 随机数抽奖程序 html,半小时撸一个抽奖程序
  19. 数据结构与算法之树结构基础
  20. Acer 4750 安装黑苹果_黑苹果的安装(干货)

热门文章

  1. 二元隐函数求二阶偏导_隐函数求二阶偏导
  2. 胚胎干细胞研究成果集锦,目录大合集
  3. 查看Andriod内置浏览器WebView版本
  4. Design Ware IP
  5. dnf服务器未响应怎么解决方法,DNF地下城与勇士程序未响应怎么办——一招搞定...
  6. BIOS 从FFFF0H处开始执行指令的理解
  7. Java SE 12_Frequently-used Class Library(2)
  8. air202c语言编程,Air202学习 五
  9. sqlserver执行生成rpt文件怎么回事_使用生成脚本功能和数据导出工具实现SQL Server2014数据降级2008R2版本...
  10. jinjia2中for循环索引