On OS X the serial device must be opened with O_NONBLOCK flag.
Later this flag must be cleared before write operations otherwise
only small chunks data can be written at once.
Tested on OS X (10.8.4).
Author : Piotr Wilczek <p.wilczek@samsung.com>
Change-Id: I2b77cf16aacd491af9c94203fe7dfc49ce361516
Signed-off-by: jaehoon.you <jaehoon.you@samsung.com>
Jaehoon You <jaehoon.you@samsung.com>
Karol Lewandowski <k.lewandowsk@samsung.com>
Rafal Krypa <r.krypa@samsung.com>
+Piotr Wilczek <p.wilczek@samsung.com>
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(BINDIR "${PREFIX}/bin")
-SET(PACKAGE_VERSION "1.3")
+SET(PACKAGE_VERSION "1.4")
IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
ADD_DEFINITIONS("-DPACKAGE_VERSION=\"${PACKAGE_VERSION}\"")
#SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
-SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
+IF(APPLE)
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
+ELSE()
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
+ENDIF()
ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
Copyright (c) Samsung Electronics Co., Ltd. All rights reserved.
Except as noted, this software is licensed under Apache License, Version 2.
Please, see the LICENSE.APLv2 file for Apache License terms and conditions.
+
+----------------------------------------------------------------------------
+<OS X>
+
+(Requirements: OS X 10.7, 10.8)
+For OS X 'pkg-config' package is required. It can be downloaded from:
+http://www.freedesktop.org/wiki/Software/pkg-config/
+
+The libarchive download is available at:
+http://www.libarchive.org/
+
+On OS X always execute lthor with -d /dev/cu.MYDEV
+ex) lthor -d /dev/cu.SAMSUNG_VSP *.tar
r = write(fd, chunk, trans_unit_size);
if (r != trans_unit_size) {
+ if (r > 0)
+ fprintf(stderr, "line %d: %d bytes requested, %d written\n",
+ __LINE__, trans_unit_size, r);
fprintf(stderr, "line %d: failed to send data\n", __LINE__);
free(chunk);
return -1;
}
if (dev) {
- fd = open(dev, O_RDWR);
+ /* On OS X open serial port with O_NONBLOCK flag */
+ fd = open(dev, O_RDWR | O_NONBLOCK);
+
if (fd == -1) {
perror("port open error!!\n");
return -1;
}
+
+ /*now clear the O_NONBLOCK flag to enable writing big data chunks at once*/
+ if (fcntl(fd, F_SETFL, 0)) {
+ printf("line %d: error clearing O_NONBLOCK\n", __LINE__);
+ return -1;
+ }
+
break;
}
#
Name: lthor
Summary: Flashing tool for Tizen lunchbox
-Version: 1.3
+Version: 1.4
Release: 1
Group: Development/Tools/Other
License: Apache