如何在WebOS中使用汇编语言

在WebOS中使用汇编语言需要使用HP给出的PDK,详细请见这个地址:https://developer.palm.com/content/api/dev-guide/pdk/overview.html


如果你在瘟抖死下开发,那么PDK的路径你能在瘟抖死用户界面中找到。如果在Mac下,那么它会被装进/opt中。由于这个路径在Finder中是无法被显示出来的,因此你可以使用Unix的cp命令把/opt/PalmPDK目录拷贝到Finder中能显示的位置,方便我们编辑、编译和调试。

假定我把这个目录放在/Users/zenny_chen下。我们后面可以先打开PalmPDK,在share/samplecode/  目录下面看到一些HP提供的样例代码。我们就拿simple开刀。


1、打开你Mac OS X下的Terminal,这里要注意的是先把你的位置设定到simple例子下的mac目录中。即cd /Users/zenny_chen/PalmPDK/share/samplecode/simple/mac/


2、然后与Android一样设置工程目录和编译器目录。在Mac OS X下,这个例子中有一个编译模板bash文件——buildit_for_device.sh。因此,我们可以非常方便地通过修改这个bash文件来编译连接这个项目。我们在Terminal中依次输入:PATH="/Users/zenny_chen/PalmPDK/arm-gcc/bin"

export PATH

PalmPDK="/Users/zenny_chen/PalmPDK"

export PalmPDK


3、完成以后,我们可以在src目录下添加新的汇编源文件——hey.s,编辑它:

.text
.align 4
.arm

.globl my_real_arm


my_real_arm:

add r0, r0, #256
vmov q0, q1
vdup.32 q0, r0

bx lr


4、在simple.cpp中添加extern "C" int my_real_arm(int dummy);然后在某个函数中调用它即可。


5、修改buildit_for_device.sh文件。

首先,我们要添加hey.s。我们添加一个符号——SRC2,在export SRC="simple.cpp"下面输入:export SRC2="hey.s"

这里要注意的是,等号(=)前后不能有空格。

然后,我们在最后找到$CC $DEVICEOPTS $CPPFLAGS $LDFLAGS $LIBS -o $BUILDDIR/$OUTFILE $SRCDIR/$SRC

将它修改为$CC $DEVICEOPTS $CPPFLAGS $LDFLAGS $LIBS -o $BUILDDIR/$OUTFILE $SRCDIR/$SRC $SRCDIR/$SRC2

保存好以后,我们在terminal中执行./buildit_for_device.sh pre

后面加pre来告诉脚本我们使用ARMv7A架构,这样能够开启NEON特性。如果没有pre,那么脚本将用ARM11的选项来编译。

如果你看到mkdir有错误,那么在执行脚本前,在mac目录下我们手动添加Build_Device目录。

posted @ 2011-11-05 16:21  zenny_chen  Views(611)  Comments(0Edit  收藏  举报