Compare commits
No commits in common. "bef1d9c14b5b3fe861c30465b60dba4b320848b6" and "f752aece31691bdf05acbbef8f206e90d1cecb80" have entirely different histories.
bef1d9c14b
...
f752aece31
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,2 @@
|
|||||||
bin/
|
bin/
|
||||||
obj/
|
obj/
|
||||||
|
|
||||||
|
18
.vscode/c_cpp_properties.json
vendored
18
.vscode/c_cpp_properties.json
vendored
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Linux",
|
|
||||||
"includePath": [
|
|
||||||
"${workspaceFolder}/**",
|
|
||||||
"/usr/include/c++/8",
|
|
||||||
"/usr/include/x86_64-linux-gnu/c++/8"
|
|
||||||
],
|
|
||||||
"defines": [],
|
|
||||||
"compilerPath": "/usr/bin/gcc",
|
|
||||||
"cStandard": "c11",
|
|
||||||
"cppStandard": "c++17",
|
|
||||||
"intelliSenseMode": "clang-x64"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"version": 4
|
|
||||||
}
|
|
27
.vscode/launch.json
vendored
27
.vscode/launch.json
vendored
@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "(gdb) Launch",
|
|
||||||
"type": "cppdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"program": "${workspaceFolder}/bin/test_cc",
|
|
||||||
"args": [],
|
|
||||||
"stopAtEntry": false,
|
|
||||||
"cwd": "${workspaceFolder}",
|
|
||||||
"environment": [],
|
|
||||||
"externalConsole": false,
|
|
||||||
"MIMode": "gdb",
|
|
||||||
"setupCommands": [
|
|
||||||
{
|
|
||||||
"description": "Enable pretty-printing for gdb",
|
|
||||||
"text": "-enable-pretty-printing",
|
|
||||||
"ignoreFailures": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"files.associations": {
|
|
||||||
"climits": "cpp"
|
|
||||||
}
|
|
||||||
}
|
|
57
.vscode/tasks.json
vendored
57
.vscode/tasks.json
vendored
@ -2,19 +2,16 @@
|
|||||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
// for the documentation about the tasks.json format
|
// for the documentation about the tasks.json format
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
|
"type":"shell",
|
||||||
|
"command": "make",
|
||||||
|
"echoCommand": true,
|
||||||
|
"problemMatcher": {
|
||||||
|
"base": "gcc",
|
||||||
|
},
|
||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
{
|
||||||
"label": "all",
|
"label": "all",
|
||||||
"type":"shell",
|
"args": ["all"],
|
||||||
"command": "make all -j8",
|
|
||||||
"problemMatcher": {
|
|
||||||
"base": "$gcc",
|
|
||||||
"owner": "gcc",
|
|
||||||
"fileLocation": [
|
|
||||||
"relative",
|
|
||||||
"${workspaceFolder}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"group": {
|
"group": {
|
||||||
"kind": "build",
|
"kind": "build",
|
||||||
"isDefault": true
|
"isDefault": true
|
||||||
@ -22,43 +19,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "clean",
|
"label": "clean",
|
||||||
"type":"shell",
|
"args": ["clean"],
|
||||||
"command": "make clean -j8",
|
|
||||||
"problemMatcher": {
|
|
||||||
"base": "$gcc",
|
|
||||||
"owner": "gcc",
|
|
||||||
"fileLocation": [
|
|
||||||
"relative",
|
|
||||||
"${workspaceFolder}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "distclean",
|
|
||||||
"type":"shell",
|
|
||||||
"command": "make distclean",
|
|
||||||
"problemMatcher": {
|
|
||||||
"base": "$gcc",
|
|
||||||
"owner": "gcc",
|
|
||||||
"fileLocation": [
|
|
||||||
"relative",
|
|
||||||
"${workspaceFolder}"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"presentation": {
|
|
||||||
"focus": true,
|
|
||||||
"reveal": "always",
|
|
||||||
"panel": "shared",
|
|
||||||
"clear": true,
|
|
||||||
}
|
|
||||||
}
|
}
|
104
Makefile
104
Makefile
@ -1,134 +1,46 @@
|
|||||||
CROSS_COMPILE ?=
|
CROSS_COMPILE ?=
|
||||||
|
|
||||||
TARGET_FILE ?= test_c
|
TARGET_FILE ?= test
|
||||||
|
|
||||||
CC = $(CROSS_COMPILE)gcc
|
CC = $(CROSS_COMPILE)gcc
|
||||||
CPP = $(CROSS_COMPILE)cpp
|
CPP = $(CROSS_COMPILE)cpp
|
||||||
CHECK = cppcheck
|
|
||||||
LCOV = lcov
|
|
||||||
GENHTML = genhtml
|
|
||||||
|
|
||||||
SRC_DIR = src
|
SRC_DIR = src
|
||||||
OBJ_DIR = obj
|
OBJ_DIR = obj
|
||||||
BIN_DIR = bin
|
BIN_DIR = bin
|
||||||
COVERAGE_DIR = coverage
|
|
||||||
UNIT_TEST_SRC_DIR = test/unit
|
|
||||||
UNIT_TEST_OBJ_DIR = $(OBJ_DIR)/$(UNIT_TEST_SRC_DIR)
|
|
||||||
|
|
||||||
PREFIX ?= /usr
|
|
||||||
BIN_INSTALL_DIR = $(PREFIX)/bin
|
|
||||||
|
|
||||||
INCLUDES := inc
|
INCLUDES := inc
|
||||||
INCLUDES += $(PREFIX)/include/
|
|
||||||
INCLUDES += $(EXTRA_INC)
|
|
||||||
|
|
||||||
LIBS =
|
C_FLAGS := -O0 -g
|
||||||
|
CPP_FLAGS := $(addprefix -I, $(INCLUDES))
|
||||||
LD_FLAGS += $(addprefix -L,$(EXTRA_LIB_DIR))
|
|
||||||
|
|
||||||
ifneq "$(findstring $(MAKECMDGOALS), build_unit_test exec_unit_test coverage)" ""
|
|
||||||
INCLUDES += test/inc
|
|
||||||
C_FLAGS += --coverage
|
|
||||||
LD_FLAGS += --coverage
|
|
||||||
endif
|
|
||||||
|
|
||||||
C_FLAGS += -fpic
|
|
||||||
|
|
||||||
C_FLAGS += -O0 -g -Wall
|
|
||||||
CPP_FLAGS += $(addprefix -I, $(INCLUDES))
|
|
||||||
|
|
||||||
CHECK_FLAGS = $(addprefix -I,$(filter-out $(PREFIX)/include/,$(INCLUDES)))
|
|
||||||
CHECK_FLAGS += --enable=all --template=gcc --error-exitcode=1 --suppress=missingIncludeSystem --inline-suppr --force
|
|
||||||
|
|
||||||
C_SRCS = $(wildcard $(SRC_DIR)/*.c)
|
C_SRCS = $(wildcard $(SRC_DIR)/*.c)
|
||||||
C_OBJS = $(patsubst $(SRC_DIR)%,$(OBJ_DIR)%,$(patsubst %.c,%.o,$(C_SRCS)))
|
C_OBJS = $(patsubst $(SRC_DIR)%,$(OBJ_DIR)%,$(patsubst %.c,%.o,$(C_SRCS)))
|
||||||
|
|
||||||
UNIT_TEST_SRCS = $(wildcard $(UNIT_TEST_SRC_DIR)/*.c) $(filter-out %main.c,$(CC_SRCS))
|
|
||||||
UNIT_TEST_OBJS = $(patsubst $(SRC_DIR)%,$(OBJ_DIR)%,$(patsubst $(UNIT_TEST_SRC_DIR)%,$(UNIT_TEST_OBJ_DIR)%,$(patsubst %.c,%.o,$(UNIT_TEST_SRCS))))
|
|
||||||
|
|
||||||
OBJS = $(C_OBJS)
|
OBJS = $(C_OBJS)
|
||||||
|
|
||||||
UNIT_TEST_TARGET = $(BIN_DIR)/$(UNIT_TEST_SRC_DIR)/$(TARGET_FILE)
|
|
||||||
TARGET = $(BIN_DIR)/$(TARGET_FILE)
|
TARGET = $(BIN_DIR)/$(TARGET_FILE)
|
||||||
THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
||||||
|
|
||||||
.PHONY: all install uninstall clean distclean
|
.PHONY: all
|
||||||
all: $(TARGET)
|
all: $(TARGET)
|
||||||
|
|
||||||
install: all
|
|
||||||
install -d $(BIN_INSTALL_DIR)
|
|
||||||
install -m 0666 $(TARGET) $(BIN_INSTALL_DIR)
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
rm -f $(BIN_INSTALL_DIR)/$(TARGET_FILE)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(TARGET)
|
|
||||||
rm -f $(OBJS) $(patsubst %.o,%.d,$(OBJS))
|
|
||||||
rm -f $(UNIT_TEST_OBJS) $(patsubst %.o,%.d,$(UNIT_TEST_OBJS)) $(UNIT_TEST_TARGET)
|
|
||||||
rm -f $(UNIT_TEST_OBJ_DIR)/*.gcda
|
|
||||||
rm -f $(UNIT_TEST_OBJ_DIR)/*.gcno
|
|
||||||
rm -f $(OBJ_DIR)/*.gcda $(OBJ_DIR)/*.gcno
|
|
||||||
rm -fr $(COVERAGE_DIR)
|
|
||||||
|
|
||||||
distclean:
|
|
||||||
rm -rf $(OBJ_DIR) $(BIN_DIR) $(COVERAGE_DIR)
|
|
||||||
|
|
||||||
.PHONY: coverage
|
|
||||||
coverage: _cov_genhtml
|
|
||||||
$(eval COVERAGE:=$(shell grep 'lines' .coverage.tmp | egrep -o '[0-9]+.[0-9]+%'))
|
|
||||||
@echo
|
|
||||||
@echo Line coverage: $(COVERAGE)
|
|
||||||
@echo
|
|
||||||
@rm -f .coverage.tmp
|
|
||||||
|
|
||||||
.PHONY: _cov_lcov
|
|
||||||
_cov_lcov: exec_unit_test
|
|
||||||
@rm -f $(UNIT_TEST_OBJ_DIR)/*.gcda
|
|
||||||
@rm -f $(UNIT_TEST_OBJ_DIR)/*.gcno
|
|
||||||
@mkdir -p $(COVERAGE_DIR)
|
|
||||||
$(LCOV) -c -d $(OBJ_DIR) -o $(COVERAGE_DIR)/coverage.info
|
|
||||||
|
|
||||||
.PHONY: _cov_genhtml
|
|
||||||
_cov_genhtml: _cov_lcov
|
|
||||||
$(GENHTML) -o $(COVERAGE_DIR)/html $(COVERAGE_DIR)/coverage.info > .coverage.tmp
|
|
||||||
|
|
||||||
.PHONY: unit_test
|
|
||||||
build_unit_test: $(UNIT_TEST_TARGET)
|
|
||||||
|
|
||||||
.PHONY: unit_test
|
|
||||||
exec_unit_test: $(UNIT_TEST_TARGET)
|
|
||||||
$(UNIT_TEST_TARGET)
|
|
||||||
|
|
||||||
.PHONY: check
|
|
||||||
check: $(CC_SRCS)
|
|
||||||
$(CHECK) $(CHECK_FLAGS) $(CC_SRCS)
|
|
||||||
|
|
||||||
$(UNIT_TEST_TARGET): $(UNIT_TEST_OBJS) $(THIS_MAKEFILE)
|
|
||||||
@mkdir -p $(BIN_DIR)/$(UNIT_TEST_SRC_DIR)
|
|
||||||
$(CC) $(CC_FLAGS) $(LD_FLAGS) $(UNIT_TEST_OBJS) -o $@
|
|
||||||
|
|
||||||
$(TARGET): $(OBJS) $(THIS_MAKEFILE)
|
$(TARGET): $(OBJS) $(THIS_MAKEFILE)
|
||||||
@mkdir -p $(BIN_DIR)
|
@mkdir -p $(BIN_DIR)
|
||||||
$(CC) $(CC_FLAGS) $(LD_FLAGS) $(OBJS) $(addprefix -l,$(LIBS)) -o $@
|
$(CC) $(LD_FLAGS) $(OBJS) $(LIBS) -o $@
|
||||||
|
|
||||||
.PRECIOUS: $(OBJ_DIR)/%.d
|
.PRECIOUS: $(OBJ_DIR)/%.d
|
||||||
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.c
|
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.c
|
||||||
@mkdir -p $(OBJ_DIR)
|
@mkdir -p $(OBJ_DIR)
|
||||||
$(CPP) -MM -MF $@ -MP -MT $(patsubst %.d,%.o,$@) $(CPP_FLAGS) $(patsubst $(OBJ_DIR)/%.d,$(SRC_DIR)/%.c,$@)
|
$(CPP) -MM -MF $@ -MP -MT $(patsubst %.d,%.o,$@) $(CPP_FLAGS) $(patsubst $(OBJ_DIR)/%.d,$(SRC_DIR)/%.c,$@)
|
||||||
|
|
||||||
.PRECIOUS: $(UNIT_TEST_OBJ_DIR)/%.d
|
|
||||||
$(UNIT_TEST_OBJ_DIR)/%.d: $(UNIT_TEST_SRC_DIR)/%.c
|
|
||||||
@mkdir -p $(UNIT_TEST_OBJ_DIR)
|
|
||||||
$(CPP) -MM -MF $@ -MP -MT $(patsubst %.d,%.o,$@) $(CPP_FLAGS) $(patsubst $(UNIT_TEST_OBJ_DIR)/%.d,$(UNIT_TEST_SRC_DIR)/%.c,$@)
|
|
||||||
|
|
||||||
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.d
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.d
|
||||||
@mkdir -p $(OBJ_DIR)
|
@mkdir -p $(OBJ_DIR)
|
||||||
$(CC) -c $(CPP_FLAGS) $(C_FLAGS) $< -o $@
|
$(CC) -c $(CPP_FLAGS) $(C_FLAGS) $< -o $@
|
||||||
|
|
||||||
$(UNIT_TEST_OBJ_DIR)/%.o: $(UNIT_TEST_SRC_DIR)/%.c $(UNIT_TEST_OBJ_DIR)/%.d
|
.PHONY: clean
|
||||||
@mkdir -p $(UNIT_TEST_OBJ_DIR)
|
clean:
|
||||||
$(CC) -c $(CPP_FLAGS) $(C_FLAGS) $< -o $@
|
rm -rf $(OBJS) $(patsubst %.o,%.d,$(OBJS)) $(TARGET)
|
||||||
|
|
||||||
ifneq ($(MAKECMDGOALS),clean)
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
-include $(patsubst %.o,%.d,$(OBJS))
|
-include $(patsubst %.o,%.d,$(OBJS))
|
||||||
|
6
inc/def.h
Normal file
6
inc/def.h
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#ifndef __INC_DEF_H__
|
||||||
|
#define __INC_DEF_H__
|
||||||
|
|
||||||
|
#define HELLO "Hello world!"
|
||||||
|
|
||||||
|
#endif // __INC_DEF_H__
|
90
inc/gpio.h
90
inc/gpio.h
@ -1,90 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
Copyright 2016 Broadcom Limited. All rights reserved.
|
|
||||||
|
|
||||||
This program is the proprietary software of Broadcom Limited and/or its
|
|
||||||
licensors, and may only be used, duplicated, modified or distributed pursuant
|
|
||||||
to the terms and conditions of a separate, written license agreement executed
|
|
||||||
between you and Broadcom (an "Authorized License").
|
|
||||||
|
|
||||||
Except as set forth in an Authorized License, Broadcom grants no license
|
|
||||||
(express or implied), right to use, or waiver of any kind with respect to the
|
|
||||||
Software, and Broadcom expressly reserves all rights in and to the Software
|
|
||||||
and all intellectual property rights therein. IF YOU HAVE NO AUTHORIZED
|
|
||||||
LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD
|
|
||||||
IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
|
|
||||||
|
|
||||||
Except as expressly set forth in the Authorized License,
|
|
||||||
1. This program, including its structure, sequence and organization,
|
|
||||||
constitutes the valuable trade secrets of Broadcom, and you shall use all
|
|
||||||
reasonable efforts to protect the confidentiality thereof, and to use this
|
|
||||||
information only in connection with your use of Broadcom integrated
|
|
||||||
circuit products.
|
|
||||||
|
|
||||||
2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
|
|
||||||
AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
|
|
||||||
WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT
|
|
||||||
TO THE SOFTWARE. BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED
|
|
||||||
WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS,
|
|
||||||
QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION.
|
|
||||||
YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
|
|
||||||
LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT,
|
|
||||||
OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO
|
|
||||||
YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN
|
|
||||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS
|
|
||||||
OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER
|
|
||||||
IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF
|
|
||||||
ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
|
|
||||||
******************************************************************************/
|
|
||||||
#ifndef GPIO_H
|
|
||||||
#define GPIO_H
|
|
||||||
|
|
||||||
#define GPIO_ENABLE 0x1
|
|
||||||
#define GPIO_DISABLE 0x0
|
|
||||||
|
|
||||||
#define GPIO_DRV_EN 0x1
|
|
||||||
#define GPIO_DRV_DIS 0x0
|
|
||||||
|
|
||||||
#define GPIO_SET_1 0x1
|
|
||||||
#define GPIO_SET_0 0x0
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
GIO_GROUP_0,
|
|
||||||
GIO_GROUP_1,
|
|
||||||
GIO_GROUP_2,
|
|
||||||
} gio_group;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
FLASH_CS_FUNC_CS,
|
|
||||||
FLASH_CS_FUNC_GPIO,
|
|
||||||
} flash_cs_mux;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
GPIO_PIN_0 = 0x1 << 0,
|
|
||||||
GPIO_PIN_1 = 0x1 << 1,
|
|
||||||
GPIO_PIN_2 = 0x1 << 2,
|
|
||||||
GPIO_PIN_3 = 0x1 << 3,
|
|
||||||
} gpio_pin;
|
|
||||||
|
|
||||||
#define GPIO_PIN_ALL (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3)
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
STRAP_PIN_QSPI,
|
|
||||||
} strap_pin;
|
|
||||||
|
|
||||||
|
|
||||||
/* prototypes */
|
|
||||||
extern void gpio_config_output(gio_group grp, int pin);
|
|
||||||
extern void gpio_config_input(gio_group grp, int pin);
|
|
||||||
extern void gpio_set(gio_group grp, int pin, int val);
|
|
||||||
extern int gpio_get(gio_group grp, int pin);
|
|
||||||
|
|
||||||
extern void gpio_flash_cs_din_en(int enable);
|
|
||||||
extern void gpio_flash_cs_dout_en(int enable);
|
|
||||||
extern void gpio_flash_cs_oe_en(int enable);
|
|
||||||
extern void gpio_flash_mux_sel(flash_cs_mux mux);
|
|
||||||
|
|
||||||
#endif /* GPIO_H */
|
|
89
inc/io.h
89
inc/io.h
@ -1,89 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
Copyright 2016 Broadcom Limited. All rights reserved.
|
|
||||||
|
|
||||||
This program is the proprietary software of Broadcom Limited and/or its
|
|
||||||
licensors, and may only be used, duplicated, modified or distributed pursuant
|
|
||||||
to the terms and conditions of a separate, written license agreement executed
|
|
||||||
between you and Broadcom (an "Authorized License").
|
|
||||||
|
|
||||||
Except as set forth in an Authorized License, Broadcom grants no license
|
|
||||||
(express or implied), right to use, or waiver of any kind with respect to the
|
|
||||||
Software, and Broadcom expressly reserves all rights in and to the Software
|
|
||||||
and all intellectual property rights therein. IF YOU HAVE NO AUTHORIZED
|
|
||||||
LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD
|
|
||||||
IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
|
|
||||||
|
|
||||||
Except as expressly set forth in the Authorized License,
|
|
||||||
1. This program, including its structure, sequence and organization,
|
|
||||||
constitutes the valuable trade secrets of Broadcom, and you shall use all
|
|
||||||
reasonable efforts to protect the confidentiality thereof, and to use this
|
|
||||||
information only in connection with your use of Broadcom integrated
|
|
||||||
circuit products.
|
|
||||||
|
|
||||||
2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
|
|
||||||
AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
|
|
||||||
WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT
|
|
||||||
TO THE SOFTWARE. BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED
|
|
||||||
WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS,
|
|
||||||
QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION.
|
|
||||||
YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
|
|
||||||
LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT,
|
|
||||||
OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO
|
|
||||||
YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN
|
|
||||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS
|
|
||||||
OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER
|
|
||||||
IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF
|
|
||||||
ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
|
|
||||||
******************************************************************************/
|
|
||||||
#ifndef IO_H
|
|
||||||
#define IO_H
|
|
||||||
|
|
||||||
/* Includes */
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
/* macros */
|
|
||||||
|
|
||||||
/* 64 bit */
|
|
||||||
/*---------------TBD----------------------*/
|
|
||||||
#define read64(addr) 0 /*--TBD--*/
|
|
||||||
#define write64(addr, msw, lsw)
|
|
||||||
|
|
||||||
/* 32 bit */
|
|
||||||
#define readl(addr) \
|
|
||||||
(*((const volatile uint32_t *) (addr)))
|
|
||||||
|
|
||||||
#define writel(addr, val) \
|
|
||||||
(*((volatile uint32_t *) (addr)) = (uint32_t)(val))
|
|
||||||
|
|
||||||
/* 16 bit */
|
|
||||||
|
|
||||||
#define readw(addr) \
|
|
||||||
(*((const volatile uint16_t *) (addr)))
|
|
||||||
|
|
||||||
#define writew(addr, val) \
|
|
||||||
(*((volatile uint16_t *) (addr)) = (uint16_t)(val))
|
|
||||||
|
|
||||||
|
|
||||||
/* 8-bit */
|
|
||||||
#define readb(addr) \
|
|
||||||
(*((const volatile uint8_t *) (addr)))
|
|
||||||
|
|
||||||
#define writeb(addr, val) \
|
|
||||||
(*((volatile uint8_t *) (addr)) = (uint8_t)(val))
|
|
||||||
|
|
||||||
|
|
||||||
/* Wrappers */
|
|
||||||
#define reg_read64(addr) read64(addr)
|
|
||||||
#define reg_write64(addr, msw, lsw) write64(addr, msw, lsw)
|
|
||||||
#define reg_read32(addr) readl(addr)
|
|
||||||
#define reg_write32(addr, val) writel(addr, val)
|
|
||||||
#define reg_read16(addr) readw(addr)
|
|
||||||
#define reg_write16(addr, val) writew(addr, val)
|
|
||||||
#define reg_read8(addr) readb(addr)
|
|
||||||
#define reg_write8(addr, val) writeb(addr, val)
|
|
||||||
|
|
||||||
#endif /* IO_H */
|
|
198819
inc/sysmap.h
198819
inc/sysmap.h
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <def.h>
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
printf("Hello world.\n");
|
printf("%s\n", HELLO);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user