- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 基于Keil a51汇编 —— 控制语句
汇编器将绝对寄存器(AR0-AR7)替换为当前寄存器bank中寄存器的物理地址。ORG 语句更改当前段的位置计数器,并为后续语句设置新的原点。表达式中可以使用美元符号字符 (‘$’),表示位置计数器的当前值。如果省略可选地址,汇编程序将从地址 0 开始绝对段(如果未定义先前的绝对 CODE 段)。该段需要至少使用与 ALIGN 语句中使用的对齐方式相同的对齐方式进行声明。RSEG 语句选择以前使用 SEGMENT 语句声明的可重定位段。遇到 ORG 语句时,汇编程序将计算表达式的值并更改位置计数器。
2023-10-10 17:37:07
882
原创 基于Keil a51汇编 —— MPL 宏定义
在汇编程序中使用 MPL 宏相对容易。使用MPL用于启用 MPL 宏处理器的汇编程序指令。更重要的是,使某些MPL宏扩展不会被禁用诺宏命令。定义要使用的宏。您可以创建一个包含文件,其中包含要在源文件之间共享的宏定义。调用或调用程序源中定义的宏函数。宏处理器扩展汇编程序组装的宏函数(在宏处理时)。所有 MPL 预定义和用户定义的函数都必须以元字符开头。默认情况下,元字符是百分比 (‘%’) 字符。但是,元字符可能会被元炭MPL 函数。定义 MPL 函数创建一个宏。是元字符用于指示宏函数。
2023-10-09 17:32:08
1099
原创 基于Keil a51汇编 —— 标准宏定义
macro-bodyENDMmacro-name 宏的名称parameter-list 可以传递给宏的形式参数的可选列表ENDM定义一个名为 LOAD_R0 的宏,该宏使用传递给宏的第一个参数的值加载寄存器 0。与 MPL 宏不同,一旦定义了标准宏,就可能无法重新定义它。宏可以定义,也可以不带正式参数列表。标准宏定义最多可嵌套 9 个级别。标准宏可以递归调用,深度可达 9 级。宏参数宏主体中的参数用参数名称(在上面的示例中为 src、dst 和 cnt)表示。
2023-10-09 16:47:16
1632
原创 基于Keil a51汇编 —— 程序模板文件以及规则
下面的代码模板包含有关如何编写自己的程序集模块的指南和提示。A51 在文件夹 \C51\ASM 中提供。
2023-10-09 11:01:49
1494
原创 基于Keil a51汇编 —— Segments, Modules, and Programs
包含一个或多个段或部分段。的所有模块后,Lx51处理对象模块文件。Lx51 链接器/定位器为所有可重定位段分配绝对内存位置,组合具有相同名称和类型的段。Lx51 输出一个包含已完成程序的绝对对象模块文件,以及一个列出链接/定位过程结果的映射文件。段可以是可重定位的,也可以是绝对的。来自不同模块的具有相同名称的段被视为同一段的一部分,称为部分段。具有相同名称的几个部分段由 Lx51 链接器/定位器组合成一个段。以下是与 Ax51 汇编器和 Lx51 链接器/定位器一起使用的子程序类型的简要介绍。
2023-10-09 10:10:20
430
原创 基于Keil a51汇编 —— 模块化编程
模块化程序通常比单片程序更容易调试。您可以将新的或调试的模块链接到现有程序,并确信程序的其余部分不会更改。的多重使用 为一个程序编写的代码通常在其他程序中有用。由于代码是可重定位的,因此保存的模块可以链接到满足其输入和输出要求的任何程序。对于整体式编程,这些代码部分隐藏在程序中,并且不可用于其他程序。定义模块输入和输出后,程序员可以提供所需的输入,并通过检查输出来验证模块的正确性。然后,链接器将单独的模块链接并定位为绝对可执行的单个程序模块。一旦定义了单元之间的接口,就可以单独进行每个单元的详细设计。
2023-10-09 10:00:17
390
原创 openwrt之应用组播multicast发送接收
组播基本介绍根据以上介绍 , 我们写出组播接收程序! 应用背景wifi board 连接上级路由器,而后通过pc网络调试助手向其发送组播数据 ! 组播地址ip 定位: 224.0.1.100, 在上面的理论介绍中,该地址为:预留多播地址:在224.0.1.0~238.255.255.255之间,可用于全球范围(如Internet)或网络协议int multicast_server...
2018-08-01 10:06:50
6489
1
原创 openwrt 之设置uboot中tftp烧写证书变量
在flash中有一个专门存放uboot-env的block, 在发布uboot时可预置一些特定的bian变量,如此我们可以修改文件:qca/src/qca-legacy-uboot/include/configs/board953x.h (专项项目),如下图该文件一部分相关codewriteCert=tftp 0x80060000 ${DeviceUuid}.cert;cp.b 0x800...
2018-07-23 10:53:09
714
原创 openwrt 之通过uci 设置参数
在openwrt中, 默认一种配置文件,默认的路径/etc/config,在这里面的所有配置文件如需要修改只需使用uci 这个指令来修改。以下uci 指令参数:root@xxxx:~# uci Usage: uci [<options>] <command> [<arguments>]Commands: batch export [<config&...
2018-06-20 16:57:06
2884
原创 openwrt之wifi 脚本指令与 uci 指令/ ap + sta / 配置连接上级路由器
root@xxx:~# wifi helpUsage: /sbin/wifi [down|detect|reload|status]enables (default), disables or detects a wifi configurationroot@xxx:~# wifi up/down //打开、关闭wifi 接口(包括ap、sta),但是不写会存储(重启设备,恢复默认值)root@...
2018-02-24 15:40:52
5624
原创 libwebsocket 交叉编译及应用注意细节
linux下编译:1、安装 CMake2.6或更高版本(http://cmake.org/cmake/resources/software.html)2、安装OpenSSL/ZLIB3、编译。编译 : 生成Makefile 等配置文件 mkdir build1; \ cd build1; \ cmake .. \ -DLWS_IPV6
2017-10-20 15:06:09
6633
3
转载 直接拿来用!最火的Android开源项目(二)
转自:http://www.youkuaiyun.com/article/2013-05-06/2815145-Android-open-source-projects-two在《直接拿来用!最火的Android开源项目(一)》中,我们详细地介绍了GitHub上最受欢迎的TOP20 Android开源项目,引起了许多读者的热议,作为开发者,你最常用的是哪些开源项目?使用起来是否能让你得心应
2014-08-23 16:12:32
354
转载 直接拿来用!最火的Android开源项目(完结篇)
此前,优快云移动频道推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“直接拿来用!最火的Android开源项目”系列文章(一)、(二)中,我们也相继盘点了40个GitHub上最受欢迎的Android开源项目。对于GitHub上如此众多的项目,有人不断Mark,有人分享自己的经验,有人心生“看得眼花缭乱,果然是需要终身学习的时代”的感慨,不管怎么样,如果能让你真的有所
2014-08-23 16:12:16
322
转载 直接拿来用!最火的Android开源项目(一)
很好的整理,转自:http://www.youkuaiyun.com/article/2013-05-03/2815127-Android-open-source-projects摘要:对于开发者而言,了解当下比较流行的开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。为此,优快云特整理了GitHub上最受欢迎的Android及iOS开源项目,本文详细介绍了20个A
2014-08-23 16:10:54
348
原创 android 资源国际化 国家/地区 语言缩写代码
国家/地区 语言缩写代码 查询备用国家/地区语言代码国家/地区语言代码简体中文(中国)zh-cn繁体中文(台湾地区)zh-tw繁体中文(香港)zh-hk英语(香港)en-hk英语(美国)en-us英语(英国)en-gb英语(全球)en-ww英语(加拿大)en-ca
2014-04-19 14:55:30
964
原创 android 多媒体文件关联之MIME TYPE
在我们打开手机中的文件夹,并点击文件时,会跳出一个dialog的选项面板,上面显示的就是我们点击的文件所有关联的应用,也就是能够用这些应用来读取我们的文件;下面要描述的就是,开发者如在自己的应用中实现点击文件调出相关的应用选项面板以及点击手机中的文件关联到我们自己写的应用程序并显示在面板上。 下面实现的是,点击手机中的音频文件如何关联到我自己写的音乐播放器!
2014-03-27 19:54:08
2960
1
原创 android之 clipdraw 在 .xml中的使用
ClipDraw 代表从其他位图上截取的一个“图片片段”。 在xml文件中定义ClipDraw对象使用, 其结构如下:<clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/shuangta" androi
2014-03-27 10:22:16
945
转载 Android 利用BaseAdapter定制属于自己的adapter
ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来。一般而言,一个ListView由以下三个元素组成: 1.View,用于展示列表,通常是一个xml所指定的。大家都知道Android的界面基本上是由xml文件负责完成的,所以ListView的界面也理所应当的使用了xml定义。例如在ListView中经常用到的“android.R
2014-03-20 09:10:35
593
转载 android之 JNI 详解 (十)
上面代码中的第三行, jobjectArray result; 因为要返回值,所以需要新建一个jobjectArray对象。 jclass intArrCls = env->FindClass("[I"); 是创建一个jclass的引用,因为 result的元素是一维int数组的引用,所以intArrCls必须是一维int数组的引用,这一点是如何保证的呢?注意Fin
2014-03-15 13:48:58
587
转载 android 之 JNI 详解 (九)
3. 数组类型的传递 和String一样,JNI为Java基本类型的数组提供了j*Array类型,比如int[]对应的就是jintArray。来看一个传递int数组的例子,Java代码:JNIEXPORT jint JNICALL Java_IntArray_sumArray(JNIEnv *env, jobject obj, jintArray arr)
2014-03-15 13:47:32
553
转载 android 之JNI 详解(八)
在这个例子中,我们要实现一个native方法 String getLine(String prompt); 读入一个String参数,返回一个String值。 通过执行javah -jni得到的头文件是这样的Java代码:#include #ifndef _Included_Prompt#define _Included_Prompt#i
2014-03-15 13:46:16
518
转载 android 之 JNI 详解 (七)
4 directories, 4 files 5.编译:make APP=myjni. 以上内容在ubuntu完成。以下内容在windows中完成。当然也可以在ubuntu中完成。 6.在eclipsh中创建android application。将myjni中自动生成的libs文件夹拷贝到当前工程文件夹中,编译运行即可。Java代码:pa
2014-03-15 13:44:38
495
转载 android 之 JNI 详解(六)
4.编译.c文件生存动态库。 arm-none-linux-gnueabi-gcc -I/home/a/work/android/jdk1.6.0_17/include -I/home/a/work/android/jdk1.6.0_17/include/linux -fpic -c com_hello_jnitest_Nadd.c arm-none-linux-
2014-03-15 13:43:08
653
转载 android 之 JNI 详解(五)
上面的都是基本类型。如果Java函数的参数是class,则以"L"开头,以";"结尾,中间是用"/" 隔开的包及类名。而其对应的C函数名的参数则为jobject. 一个例外是String类,其对应的类为jstring Ljava/lang/String; String jstring Ljava/net/Socket; Socket jobject 如果JAVA函数位于一
2014-03-15 13:41:19
511
转载 android 之 JNI 详解(四)
4.Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数。其中很重要的区别是Andorid使用了一种Java 和 C 函数的映射表数组,并在其中描述了函数的参数和返回值。这个数组的类型是JNINativeMethod,定义如下:java代码:typedef struct {const char* name;const char
2014-03-15 13:36:04
506
转载 android 之 JNI 详解(三)
3.registerNativeMethods()函数的用途 应用层级的Java类别透过VM而呼叫到本地函数。一般是仰赖VM去寻找*.so里的本地函数。如果需要连续呼叫很多次,每次都需要寻找一遍,会多花许多时间。此时,组件开发者可以自行将本地函数向VM进行登记。例如,在Android的/system/lib/libmedia_jni.so档案里的代码段如下:java代码:
2014-03-15 13:33:43
556
转载 android之 JNI 详解(二)
此函数回传JNI_VERSION_1_4值给VM,于是VM知道了其所使用的JNI版本了。此外,它也做了一些初期的动作(可呼叫任何本地函数),例如指令:Java代码:if (register_android_media_MediaPlayer(env) LOGE("ERROR: MediaPlayer native registration failed ");got
2014-03-15 13:30:46
708
转载 android之 JNI 详解( 一 )
Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,
2014-03-15 13:27:31
942
原创 linux 之内核启动过程
与移植u-boot的过程相似,在移植Linux之前,先了解它的启动过程。Linux的启动过程可以分为两部分:架构、开发板的引导过程、后续的通用启动过程。如下图所示的是ARM架构处理器上Linux内核vmlinux的启动过程。之所以强调是vmlinux,是因为其他格式的内核在进行与Linux相同的流程之前会有一些独特的操作。比如对于压缩格式的内核zImage,它首先进行自解压得到vmlinux,然后
2014-03-07 20:17:46
592
原创 linux 产品发布--根文件系统镜像制作
用命令:du 要查看的文件夹的大小 -hs 算出根文件系统的大小将近两百兆(本人自己用的)[root@localhost opt]# du * -hs133M qt-embedded-arm9244K tslib从上可以看出, qt 的库函数占去了绝大多数的空间,所以需要对这个库进行缩减。文件系统: 常用文件系统格式: NFS
2014-03-07 20:12:26
1037
原创 linux内核驱动三类注册方式
1. 2.6之后的注册方式:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i
2014-03-07 20:06:12
1012
正确配置RT5350中ttyS0正常工作
2014-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人