Adds "armvX-none-rvct" targets
Adds following targets to configure script to support RVCT compilation without operating system support (for Profiler or bare metal images). - armv5te-none-rvct - armv6-none-rvct - armv7-none-rvct To strip OS specific parts from the code "os_support"-config was added to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS specific parts such as OS specific includes and function calls for timers and threads etc. This was done to enable RVCT compilation for profiling purposes or running the image on bare metal target with Lauterbach. Removed separate AREA directives for READONLY data in armv6 and neon assembly files to fix the RVCT compilation. Otherwise "ldr <reg>, =label" syntax would have been needed to prevent linker errors. This syntax is not supported by older gnu assemblers. Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
This commit is contained in:
Родитель
d3e9409bb0
Коммит
11a222f5d9
|
@ -664,7 +664,7 @@ process_common_toolchain() {
|
|||
elif enabled armv7
|
||||
then
|
||||
check_add_cflags -march=armv7-a -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-ftree-vectorize
|
||||
check_add_asflags -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-march=armv7-a
|
||||
check_add_asflags -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-march=armv7-a
|
||||
else
|
||||
check_add_cflags -march=${tgt_isa}
|
||||
check_add_asflags -march=${tgt_isa}
|
||||
|
@ -695,10 +695,17 @@ process_common_toolchain() {
|
|||
arch_int=${arch_int%%te}
|
||||
check_add_asflags --pd "\"ARCHITECTURE SETA ${arch_int}\""
|
||||
enabled debug && add_asflags -g
|
||||
add_cflags --gnu
|
||||
add_cflags --enum_is_int
|
||||
add_cflags --wchar32
|
||||
;;
|
||||
esac
|
||||
|
||||
case ${tgt_os} in
|
||||
none*)
|
||||
disable multithread
|
||||
disable os_support
|
||||
;;
|
||||
darwin*)
|
||||
SDK_PATH=/Developer/Platforms/iPhoneOS.platform/Developer
|
||||
TOOLCHAIN_PATH=${SDK_PATH}/usr/bin
|
||||
|
@ -747,13 +754,9 @@ process_common_toolchain() {
|
|||
|| die "Must supply --libc when targetting *-linux-rvct"
|
||||
|
||||
# Set up compiler
|
||||
add_cflags --gnu
|
||||
add_cflags --enum_is_int
|
||||
add_cflags --library_interface=aeabi_glibc
|
||||
add_cflags --no_hide_all
|
||||
add_cflags --wchar32
|
||||
add_cflags --dwarf2
|
||||
add_cflags --gnu
|
||||
|
||||
# Set up linker
|
||||
add_ldflags --sysv --no_startup --no_ref_cpp_init
|
||||
|
|
|
@ -79,11 +79,13 @@ EOF
|
|||
# alphabetically by architecture, generic-gnu last.
|
||||
all_platforms="${all_platforms} armv5te-linux-rvct"
|
||||
all_platforms="${all_platforms} armv5te-linux-gcc"
|
||||
all_platforms="${all_platforms} armv5te-none-rvct"
|
||||
all_platforms="${all_platforms} armv5te-symbian-gcc"
|
||||
all_platforms="${all_platforms} armv5te-wince-vs8"
|
||||
all_platforms="${all_platforms} armv6-darwin-gcc"
|
||||
all_platforms="${all_platforms} armv6-linux-rvct"
|
||||
all_platforms="${all_platforms} armv6-linux-gcc"
|
||||
all_platforms="${all_platforms} armv6-none-rvct"
|
||||
all_platforms="${all_platforms} armv6-symbian-gcc"
|
||||
all_platforms="${all_platforms} armv6-wince-vs8"
|
||||
all_platforms="${all_platforms} iwmmxt-linux-rvct"
|
||||
|
@ -95,6 +97,7 @@ all_platforms="${all_platforms} iwmmxt2-wince-vs8"
|
|||
all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} mips32-linux-gcc"
|
||||
all_platforms="${all_platforms} ppc32-darwin8-gcc"
|
||||
all_platforms="${all_platforms} ppc32-darwin9-gcc"
|
||||
|
@ -159,6 +162,7 @@ enable fast_unaligned #allow unaligned accesses, if supported by hw
|
|||
enable md5
|
||||
enable spatial_resampling
|
||||
enable multithread
|
||||
enable os_support
|
||||
|
||||
[ -d ${source_path}/../include ] && enable alt_tree_layout
|
||||
for d in vp8; do
|
||||
|
@ -253,6 +257,7 @@ CONFIG_LIST="
|
|||
small
|
||||
arm_asm_detok
|
||||
postproc_visualizer
|
||||
os_support
|
||||
"
|
||||
CMDLINE_SELECT="
|
||||
extra_warnings
|
||||
|
|
10
examples.mk
10
examples.mk
|
@ -93,8 +93,16 @@ vp8cx_set_ref.DESCRIPTION = VP8 set encoder reference frame
|
|||
|
||||
|
||||
# Handle extra library flags depending on codec configuration
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
|
||||
|
||||
# We should not link to math library (libm) on RVCT
|
||||
# when building for bare-metal targets
|
||||
ifeq ($(CONFIG_OS_SUPPORT), yes)
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
|
||||
else
|
||||
ifeq ($(CONFIG_GCC), yes)
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
|
||||
endif
|
||||
endif
|
||||
#
|
||||
# End of specified files. The rest of the build rules should happen
|
||||
# automagically from here.
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
* Still in the public domain.
|
||||
*/
|
||||
|
||||
#include <sys/types.h> /* for stupid systems */
|
||||
|
||||
#include <string.h> /* for memcpy() */
|
||||
|
||||
#include "md5_utils.h"
|
||||
|
|
|
@ -243,8 +243,6 @@ skip_secondpass_hloop
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA subpelfilters8_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
_filter8_coeff_
|
||||
|
|
|
@ -350,10 +350,7 @@ filt_blk2d_spo16x16_loop_neon
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA bifilters16_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_bifilter16_coeff_
|
||||
DCD bifilter16_coeff
|
||||
bifilter16_coeff
|
||||
|
|
|
@ -123,10 +123,7 @@ skip_secondpass_filter
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA bilinearfilters4_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_bifilter4_coeff_
|
||||
DCD bifilter4_coeff
|
||||
bifilter4_coeff
|
||||
|
|
|
@ -128,10 +128,7 @@ skip_secondpass_filter
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA bifilters8x4_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_bifilter8x4_coeff_
|
||||
DCD bifilter8x4_coeff
|
||||
bifilter8x4_coeff
|
||||
|
|
|
@ -176,10 +176,7 @@ skip_secondpass_filter
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA bifilters8_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_bifilter8_coeff_
|
||||
DCD bifilter8_coeff
|
||||
bifilter8_coeff
|
||||
|
|
|
@ -397,7 +397,8 @@
|
|||
bx lr
|
||||
ENDP ; |vp8_loop_filter_horizontal_edge_y_neon|
|
||||
|
||||
AREA loopfilter_dat, DATA, READONLY
|
||||
;-----------------
|
||||
|
||||
_lf_coeff_
|
||||
DCD lf_coeff
|
||||
lf_coeff
|
||||
|
|
|
@ -104,10 +104,7 @@
|
|||
ENDP ; |vp8_loop_filter_simple_horizontal_edge_neon|
|
||||
|
||||
;-----------------
|
||||
AREA hloopfiltery_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 16 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_lfhy_coeff_
|
||||
DCD lfhy_coeff
|
||||
lfhy_coeff
|
||||
|
|
|
@ -145,10 +145,7 @@
|
|||
ENDP ; |vp8_loop_filter_simple_vertical_edge_neon|
|
||||
|
||||
;-----------------
|
||||
AREA vloopfiltery_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 16 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_vlfy_coeff_
|
||||
DCD vlfy_coeff
|
||||
vlfy_coeff
|
||||
|
|
|
@ -505,7 +505,8 @@
|
|||
bx lr
|
||||
ENDP ; |vp8_mbloop_filter_neon|
|
||||
|
||||
AREA mbloopfilter_dat, DATA, READONLY
|
||||
;-----------------
|
||||
|
||||
_mblf_coeff_
|
||||
DCD mblf_coeff
|
||||
mblf_coeff
|
||||
|
|
|
@ -113,10 +113,7 @@
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA idct4x4_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_idct_coeff_
|
||||
DCD idct_coeff
|
||||
idct_coeff
|
||||
|
|
|
@ -476,10 +476,7 @@ secondpass_only_inner_loop_neon
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA subpelfilters16_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_filter16_coeff_
|
||||
DCD filter16_coeff
|
||||
filter16_coeff
|
||||
|
|
|
@ -407,10 +407,7 @@ secondpass_filter4x4_only
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA subpelfilters4_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_filter4_coeff_
|
||||
DCD filter4_coeff
|
||||
filter4_coeff
|
||||
|
|
|
@ -458,10 +458,7 @@ secondpass_filter8x4_only
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA subpelfilters8_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_filter8_coeff_
|
||||
DCD filter8_coeff
|
||||
filter8_coeff
|
||||
|
|
|
@ -509,10 +509,7 @@ filt_blk2d_spo8x8_loop_neon
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA subpelfilters8_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_filter8_coeff_
|
||||
DCD filter8_coeff
|
||||
filter8_coeff
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
|
||||
#define VPXINFINITE 10000 /* 10second. */
|
||||
|
||||
#if CONFIG_OS_SUPPORT
|
||||
|
||||
/* Thread management macros */
|
||||
#ifdef _WIN32
|
||||
/* Win32 */
|
||||
|
@ -88,4 +90,8 @@
|
|||
#define x86_pause_hint()
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_OS_SUPPORT = 0 */
|
||||
#define THREAD_FUNCTION void *
|
||||
#endif /* CONFIG_OS_SUPPORT */
|
||||
|
||||
#endif
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
*/
|
||||
|
||||
|
||||
#ifndef WIN32
|
||||
#if !defined(WIN32) && CONFIG_OS_SUPPORT == 1
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
#ifdef __APPLE__
|
||||
|
|
|
@ -112,10 +112,7 @@
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA fastfdct_dat, DATA, READONLY
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_ffdct_coeff_
|
||||
DCD ffdct_coeff
|
||||
ffdct_coeff
|
||||
|
|
|
@ -165,10 +165,7 @@
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA fastfdct8x4_dat, DATA, READONLY
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_ffdct8_coeff_
|
||||
DCD ffdct8_coeff
|
||||
ffdct8_coeff
|
||||
|
|
|
@ -122,10 +122,7 @@
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA dct4x4_dat, DATA, READONLY
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_dct_matrix_
|
||||
DCD dct_matrix
|
||||
dct_matrix
|
||||
|
|
|
@ -416,10 +416,7 @@ sub_pixel_variance16x16_neon_loop
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA vp8e_bilinear_taps_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_BilinearTaps_coeff_
|
||||
DCD bilinear_taps_coeff
|
||||
bilinear_taps_coeff
|
||||
|
|
|
@ -215,10 +215,7 @@ sub_pixel_variance8x8_neon_loop
|
|||
ENDP
|
||||
|
||||
;-----------------
|
||||
AREA bilinear_taps_dat, DATA, READWRITE ;read/write by default
|
||||
;Data section with name data_area is specified. DCD reserves space in memory for 48 data.
|
||||
;One word each is reserved. Label filter_coeff can be used to access the data.
|
||||
;Data address: filter_coeff, filter_coeff+4, filter_coeff+8 ...
|
||||
|
||||
_BilinearTaps_coeff_
|
||||
DCD bilinear_taps_coeff
|
||||
bilinear_taps_coeff
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#ifndef VPX_TIMER_H
|
||||
#define VPX_TIMER_H
|
||||
|
||||
#if CONFIG_OS_SUPPORT
|
||||
|
||||
#if defined(_WIN32)
|
||||
/*
|
||||
* Win32 specific includes
|
||||
|
@ -93,5 +95,27 @@ vpx_usec_timer_elapsed(struct vpx_usec_timer *t)
|
|||
#endif
|
||||
}
|
||||
|
||||
#else /* CONFIG_OS_SUPPORT = 0*/
|
||||
|
||||
/* Empty timer functions if CONFIG_OS_SUPPORT = 0 */
|
||||
#ifndef timersub
|
||||
#define timersub(a, b, result)
|
||||
#endif
|
||||
|
||||
struct vpx_usec_timer
|
||||
{
|
||||
void *dummy;
|
||||
};
|
||||
|
||||
static void
|
||||
vpx_usec_timer_start(struct vpx_usec_timer *t) { }
|
||||
|
||||
static void
|
||||
vpx_usec_timer_mark(struct vpx_usec_timer *t) { }
|
||||
|
||||
static long
|
||||
vpx_usec_timer_elapsed(struct vpx_usec_timer *t) { return 0; }
|
||||
|
||||
#endif /* CONFIG_OS_SUPPORT */
|
||||
|
||||
#endif
|
||||
|
|
24
vpxdec.c
24
vpxdec.c
|
@ -17,14 +17,7 @@
|
|||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
#if defined(_WIN32)
|
||||
#include <io.h>
|
||||
#define snprintf _snprintf
|
||||
#define isatty _isatty
|
||||
#define fileno _fileno
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#define VPX_CODEC_DISABLE_COMPAT 1
|
||||
#include "vpx_config.h"
|
||||
#include "vpx/vpx_decoder.h"
|
||||
|
@ -38,6 +31,17 @@
|
|||
#include "tools_common.h"
|
||||
#include "nestegg/include/nestegg/nestegg.h"
|
||||
|
||||
#if CONFIG_OS_SUPPORT
|
||||
#if defined(_WIN32)
|
||||
#include <io.h>
|
||||
#define snprintf _snprintf
|
||||
#define isatty _isatty
|
||||
#define fileno _fileno
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 256
|
||||
#endif
|
||||
|
@ -866,7 +870,7 @@ int main(int argc, const char **argv_)
|
|||
strcmp(fn, "-") ? fn : "stdin");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
#if CONFIG_OS_SUPPORT
|
||||
/* Make sure we don't dump to the terminal, unless forced to with -o - */
|
||||
if(!outfile_pattern && isatty(fileno(stdout)) && !do_md5 && !noblit)
|
||||
{
|
||||
|
@ -875,7 +879,7 @@ int main(int argc, const char **argv_)
|
|||
"override.\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
#endif
|
||||
input.infile = infile;
|
||||
if(file_is_ivf(infile, &fourcc, &width, &height, &fps_den,
|
||||
&fps_num))
|
||||
|
|
10
vpxenc.c
10
vpxenc.c
|
@ -12,7 +12,7 @@
|
|||
/* This is a simple program that encodes YV12 files and generates ivf
|
||||
* files using the new interface.
|
||||
*/
|
||||
#if defined(_WIN32)
|
||||
#if defined(_WIN32) || !CONFIG_OS_SUPPORT
|
||||
#define USE_POSIX_MMAP 0
|
||||
#else
|
||||
#define USE_POSIX_MMAP 1
|
||||
|
@ -58,6 +58,14 @@ typedef __int64 off_t;
|
|||
#define LITERALU64(n) n##LLU
|
||||
#endif
|
||||
|
||||
/* We should use 32-bit file operations in WebM file format
|
||||
* when building ARM executable file (.axf) with RVCT */
|
||||
#if !CONFIG_OS_SUPPORT
|
||||
typedef long off_t;
|
||||
#define fseeko fseek
|
||||
#define ftello ftell
|
||||
#endif
|
||||
|
||||
static const char *exec_name;
|
||||
|
||||
static const struct codec_item
|
||||
|
|
Загрузка…
Ссылка в новой задаче