README for mbed TLS
===================
Configuration
-------------
mbed TLS should build out of the box on most systems. Some platform specific options are available in the fully documented configuration file `include/mbedtls/config.h`, which is also the place where features can be selected. This file can be edited manually, or in a more programmatic way using the Perl script `scripts/config.pl` (use `--help` for usage instructions).
Compiler options can be set using conventional environment variables such as `CC` and `CFLAGS` when using the Make and CMake build system (see below).
Compiling
---------
There are currently four active build systems used within mbed TLS releases:
- yotta
- Make
- CMake
- Microsoft Visual Studio (Visual Studio 6 and Visual Studio 2010)
The main systems used for development are CMake and Make. Those systems are always complete and up-to-date. The others should reflect all changes present in the CMake and Make build system, although features may not be ported there automatically.
Yotta, as a build system, is slightly different from the other build systems:
- it provides a minimalistic configuration file by default
- depending on the yotta target, features of mbed OS may be used in examples and tests
The Make and CMake build systems create three libraries: libmbedcrypto, libmbedx509, and libmbedtls. Note that libmbedtls depends on libmbedx509 and libmbedcrypto, and libmbedx509 depends on libmbedcrypto. As a result, some linkers will expect flags to be in a specific order, for example the GNU linker wants `-lmbedtls -lmbedx509 -lmbedcrypto`. Also, when loading shared libraries using dlopen(), you'll need to load libmbedcrypto first, then libmbedx509, before you can load libmbedtls.
### Yotta
[yotta](http://yottabuild.org) is a package manager and build system developed by mbed, and is the build system of mbed OS 16.03. To install it on your platform, please follow the yotta [installation instructions](http://docs.yottabuild.org/#installing).
Once yotta is installed, you can use it to download the latest version of mbed TLS from the yotta registry with:
yotta install mbedtls
and build it with:
yotta build
If, on the other hand, you already have a copy of mbed TLS from a source other than the yotta registry, for example from cloning our GitHub repository, or from downloading a tarball of the standalone edition, then you'll first need to generate the yotta module by running:
yotta/create-module.sh
This should be executed from the root mbed TLS project directory. This will create the yotta module in the `yotta/module` directory within it. You can then change to that directory and build as usual:
cd yotta/module
yotta build
In any case, you'll probably want to set the yotta target before building unless it has already been set globally. For more information on using yotta, please consult the [yotta documentation](http://docs.yottabuild.org/).
For more details on the yotta/mbed OS edition of mbed TLS, including example programs, please consult the [Readme at the root of the yotta module](https://github.com/ARMmbed/mbedtls/blob/development/yotta/data/README.md).
### Make
We intentionally only use the minimum of `Make` functionality, as a lot of `Make` features are not supported on all different implementations of Make or on different platforms. As such, the Makefiles sometimes require some manual changes or export statements in order to work for your platform.
In order to build from the source code using Make, just enter at the command line:
make
In order to run the tests, enter:
make check
The tests need Perl to be built and run. If you don't have Perl installed, you can skip building the tests with:
make no_test
You'll still be able to run a much smaller set of tests with:
programs/test/selftest
In order to build for a Windows platform, you should use `WINDOWS_BUILD=1` if the target is Windows but the build environment is Unix-like (for instance when cross-compiling, or compiling from an MSYS shell), and `WINDOWS=1` if the build environment is a Windows shell (for instance using mingw32-make) (in that case some targets will not be available).
Setting the variable `SHARED` in your environment will build shared libraries in addition to the static libraries. Setting `DEBUG` gives you a debug build. You can override `CFLAGS` and `LDFLAGS` by setting them in your environment or on the make command line; if you do so, essential parts such as `-I` will still be preserved. Warning options may be overridden separately using `WARNING_CFLAGS`.
Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the mbed TLS Knowledge Base](https://tls.mbed.org/kb) for articles on your platform or issue.
In case you find that you need to do something else as well, please let us know what, so we can add it to the [mbed TLS knowledge base](https://tls.mbed.org/kb).
### CMake
In order to build the source using CMake, just enter at the command line:
cmake .
make
In order to run the tests, enter:
make test
The test suites need Perl to be built. If you don't have Perl installed, you'll want to disable the test suites with:
cmake -DENABLE_TESTING=Off .
If you disabled the test suites, but kept the programs enabled, you can still run a much smaller set of tests with:
programs/test/selftest
To configure CMake for building shared libraries, use:
cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On .
There are many different build modes available within the CMake buildsystem. Most of them are available for gcc and clang, though some are compiler-specific:
- Release. This generates the default code without any unnecessary information in the binary files.
- Debug. This generates debug information and disables optimization of the code.
- Coverage. This generates code coverage information in addition to debug information.
- ASan. This instruments the code with AddressSanitizer to check for memory errors. (This includes LeakSanitizer, with recent version of gcc and clang.) (With recent version of clang, this mode also instruments the code with UndefinedSanitizer to check for undefined behaviour.)
- ASanDbg. Same as ASan but slower, with debug information and better stack traces.
- MemSan. This instruments the code with MemorySanitizer to check for uninitialised memory reads. Experimental, needs recent clang on Linux/x86\_64.
- MemSanDbg. Same as MemSan but slower, with debug information, better stack traces and origin tracking.
- Check. This activates the compiler warnings that depend on optimization and treats all warnings as errors.
Switching build modes in CMake is simple. For debug mode, enter at the command line:
cmake -D CMAKE_BUILD_TYPE=Debug .
To list other available CMake options, use:
cmake -LH
Note that, with CMake, if you want to change the compiler or its options after you already ran CMake, you need to clear its cache first, e.g. (using GNU find):
find . -iname '*cmake*' -not -name CMakeLists.txt -exec rm -rf {} +
CC=gcc CFLAGS='-fstack-protector-strong -Wa,--noexecstack' cmake .
### Microsoft Visual Studio
The build files for Microsoft Visual Studio are generated for Visual Studio 2010.
The solution file `mbedTLS.sln` contains all the basic projects needed to build the library and all the programs. The files in tests are not generated and compiled, as these need a perl environment as well. However, the selftest program in `programs/test/` is still available.
Example programs
----------------
We've included example programs for a lot of different features and uses in `programs/`. Most programs only focus on a single feature or usage scenario, so keep that in mind when copying parts of the code.
Tests
-----
mbed TLS includes an elaborate test suite in `test
没有合适的资源?快使用搜索试试~ 我知道了~
DLMS/COSEM通信协议文档资料+软件源码+HDLC协议资料和软件源码
共161个文件
h:60个
c:39个
mk:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 19 下载量 171 浏览量
2023-04-24
16:28:37
上传
评论 7
收藏 31.15MB ZIP 举报
温馨提示
资料包含DLMS/COSEM通信协议中文和英文文档和相关协议实现源码,同时也包含HDLC的通信协议和源码资料。 DLMS/COSEM通信协议是国际电工委员会为解决自动抄表系统和计量系统中的数据采集,仪表安装、维护,系统集成等问题提出的新的电能表通信标准。它以良好的系统互连性和互操作性成为迄今为止较为完善的电表通信协议标准。DLMS/COSEM通信协议标准已经被IEC采纳作为国际标准,即IEC62056系列。本文采用该标准设计了满足AMR发展要求的电能表。
资源推荐
资源详情
资源评论
收起资源包目录
DLMS/COSEM通信协议文档资料+软件源码+HDLC协议资料和软件源码 (161个子文件)
tasks.c 149KB
queue.c 79KB
aes.c 49KB
csm_association.c 40KB
timers.c 39KB
cipher_wrap.c 35KB
cmac.c 32KB
gcm.c 30KB
cipher.c 26KB
event_groups.c 25KB
csm_services.c 25KB
hdlc.c 24KB
croutine.c 15KB
clock.c 13KB
sha256.c 13KB
sha1.c 11KB
md5.c 11KB
list.c 11KB
serial.c 8KB
csm_channel.c 8KB
tcp_server.c 7KB
csm_ber.c 6KB
cosem_server_hal.c 6KB
csm_axdr_codec.c 6KB
csm_security.c 6KB
fs.c 6KB
main.c 6KB
cosem_client_hal.c 5KB
csm_array.c 5KB
app_database.c 4KB
app_calendar.c 3KB
os_util.c 2KB
bsp_flash.c 2KB
bitfield.c 1KB
tcp_client.c 1KB
db_cosem_clock.c 781B
db_cosem_associations.c 761B
db_cosem_image_transfer.c 717B
registry.c 25B
CosemClient.cpp 43KB
AxdrPrinter.cpp 9KB
Configuration.cpp 9KB
Transport.cpp 3KB
main.cpp 2KB
test_fs.cpp 2KB
.cproject 9KB
62056-46.doc 10.36MB
62056-53.doc 3.23MB
62056-62.doc 1.29MB
62056-21.doc 872KB
62056-61.doc 521KB
62056-53-2.doc 461KB
62056-51.doc 303KB
IEC62056术语.doc 266KB
62056-41.doc 199KB
IEC62056标准体系简介1.doc 165KB
IEC62056标准体系简介.doc 129KB
62056-52.doc 75KB
DLMS-62部分-接口类-GBT17215.662(20171116)送审稿.docx 3.71MB
.gitattributes 378B
.gitignore 912B
.gitmodules 0B
task.h 91KB
queue.h 64KB
timers.h 59KB
semphr.h 48KB
FreeRTOS.h 33KB
event_groups.h 31KB
croutine.h 28KB
cipher.h 26KB
list.h 20KB
mpu_prototypes.h 12KB
aes.h 12KB
mpu_wrappers.h 10KB
deprecated_definitions.h 10KB
csm_definitions.h 9KB
portable.h 8KB
StackMacros.h 8KB
projdefs.h 8KB
gcm.h 8KB
csm_association.h 8KB
clock.h 7KB
cmac.h 6KB
threads.h 5KB
csm_axdr_codec.h 4KB
sha256.h 4KB
csm_ber.h 3KB
sha1.h 3KB
os_util.h 3KB
md5.h 3KB
cipher_internal.h 3KB
Configuration.h 3KB
config.h 3KB
hdlc.h 3KB
CosemClient.h 2KB
csm_services.h 2KB
app_calendar.h 2KB
csm_array.h 2KB
csm_security.h 2KB
app_database.h 2KB
共 161 条
- 1
- 2
TD程序员
- 粉丝: 2744
- 资源: 435
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页