Gregory Nutt
5a590e99b9
Add SYSCALLS for pthread_setaffinity() and pthread_getaffinity()
2016-02-19 18:13:06 -06:00
Gregory Nutt
a633353ec3
Add a CPU affinity set to the TCB if SMP is enable and use this CPU set as a mask for determining which CPUs the thread may run on. Add an affinity field to the attrributes to permit controlling which CPUs a pthread may run on. Implements pthread_att_setaffinity_np() and pthread_attr_getaffinity_np().
2016-02-19 17:33:35 -06:00
Gregory Nutt
2075eb7932
Fix a typo introduced in the last commit and a file that was missed in the last commit
2016-02-19 16:03:01 -06:00
Gregory Nutt
72d3920295
Rename cpuset_t to cpu_set_t which is the type used in some non-standard Linux/GNU interfaces. Move definitions of cpu_set_t to include/sys/types.h. Add prototypes for sched_setaffinity(), sched_getaffinity(), pthread_attr_setaffinity_np(), pthread_attr_getaffinity_np(), pthread_setaffinity_np(), and pthread_getaffinity_np(). No implementation is yet in place.
2016-02-19 15:57:07 -06:00
Gregory Nutt
050b3ee06a
profcs task status will now show CPU is SMP is enabled
2016-02-19 15:34:36 -06:00
Gregory Nutt
1780000777
SMP: Setting bit for wrong CPU. Assertion has cause false alarm crashes..
2016-02-18 12:31:21 -06:00
Gregory Nutt
52fbbaf778
1. SMP: Fix an assertion. SMP-specific change accidentally made in non-SMP code
...
2. Move list of signal actions from the task TCB to the task group. Signal handlers are a property of the entire task group and not of individual threads in the group. I know, I preferred it the other way too but this is more compliant with POSIX.
2016-02-18 08:34:54 -06:00
Gregory Nutt
95735519dd
SMP: Cosmetic renaming to clarify functionality of SMP interfaces. Update comments.
2016-02-17 13:36:25 -06:00
Gregory Nutt
b50325bb38
SMP: Add funtions to perform atomic bit set/clear operations; fix two errors in SMP macros
2016-02-17 13:20:01 -06:00
Gregory Nutt
6aeb4a52e8
Performance improvement: Idle loop should not take MM semaphore if there is not garbage to be collected. This can cause loss of performance and thrashing in tasking
2016-02-16 19:33:22 -06:00
Gregory Nutt
384e51cb05
Add some additional schedule instrumentation
2016-02-16 15:21:45 -06:00
Gregory Nutt
55d33fd912
Update some comments
2016-02-16 07:50:18 -06:00
Gregory Nutt
8ea1bc3188
SMP: Fix backward spinlock test
2016-02-15 11:06:54 -06:00
Gregory Nutt
9cb2a6b1f9
Rename irqsave() and irqrestore() to up_irq_save() and up_irq_restore()
2016-02-14 16:19:15 -06:00
Gregory Nutt
88c17bb4f2
nuttx/graphics and include: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section()
2016-02-14 15:09:28 -06:00
Gregory Nutt
97cbd7112f
SMP: Implement enter/leave_critical_section
2016-02-13 10:23:16 -06:00
Gregory Nutt
8ac699b63d
SMP: Need to perform all IDLE task memory allocations on initializatin thread prior to starting the other CPUs
2016-02-13 09:04:54 -06:00
Gregory Nutt
64b3ce8775
SMP: Add up_cpustart and up_cpurestart protoypes; fix some problems in sched_addreadytorun; first cut at SMP version of up_mergepending.
2016-02-12 16:13:14 -06:00
Gregory Nutt
85f663a8ee
SMP: Add non-reentrant spinlocks, fix pre-emption controls with SMP, and most of the basic scheduler support for SMP (still missing a few things)
2016-02-12 14:55:31 -06:00
Gregory Nutt
c315479a04
SMP: Move IDLE thread init logic from sim to OS; need to assign unique IDs to each IDLE task
2016-02-11 14:11:26 -06:00
Gregory Nutt
49227fa554
Scheduler: Replace the boolean 'prioritized' with a uint8_t bit set so that additional attributes of a list can be specified without adding more boolean values.
2016-02-11 08:06:33 -06:00
Gregory Nutt
baac92cda2
Correct some columnar alignment
2016-02-10 16:55:37 -06:00
Gregory Nutt
292d2fe648
Correct naming of a TCB flag; update some comments
2016-02-10 16:53:34 -06:00
Gregory Nutt
96223cedf1
SMP: A little more
2016-02-10 15:43:05 -06:00
Gregory Nutt
8a1789ba11
Update ChangeLog
2016-02-10 14:58:55 -06:00
Gregory Nutt
3147dfc7d5
SMP: Add some tentative initialization logic
2016-02-10 13:49:27 -06:00
Gregory Nutt
47a5663f8c
SMP: A few preliminary data structure definitions
2016-02-10 11:45:26 -06:00
Gregory Nutt
f5a3b1e89d
Add EXPERIMENTAL configuration option to investigate some SMP issues
2016-02-10 10:27:48 -06:00
Gregory Nutt
2c0ad2564f
Add CONFIG_SPINLOCK. Also need spinunlock() and spinlock_initialize()
2016-02-09 15:31:14 -06:00
Gregory Nutt
b022f1e9d8
Add basic support for spinlocks (not currently used by anything)
2016-02-09 13:48:59 -06:00
Gregory Nutt
0af9a197ac
ARP: Add IOCTL commands to manage the ARP table
2016-02-08 11:17:22 -06:00
Gregory Nutt
12f95c6f6b
Add procfs/kmm to show the state of the kernel heap
2016-02-06 11:35:30 -06:00
Gregory Nutt
50cf53914c
Update submodule; Improve some comments
2016-02-05 10:23:39 -06:00
Gregory Nutt
0984104a9a
init.h: Trivial clean-up
2016-02-05 09:25:12 -06:00
Gregory Nutt
2dc258986d
Add a state variable that provides the current level of OS initialization. This is needed by some logic that may attempt to run early in the start-up sequence, but cannot run if a sufficient level of initializaitn has not not yet occurred
2016-02-05 08:34:03 -06:00
Gregory Nutt
dea24c503a
Networking: Remove the HSEC argument from devif_timer.
2016-02-03 12:12:41 -06:00
Gregory Nutt
8fa9b99e7c
I2C driver should support the RESET method as well
2016-02-03 07:32:25 -06:00
Gregory Nutt
03d868be3c
I2C: Fix a naming error
2016-02-02 14:23:33 -06:00
Gregory Nutt
9ce58ad5b7
I2C: up_i2creset should not be a global function; Now it is an I2C interface method
2016-02-02 11:21:48 -06:00
Gregory Nutt
4a34a199dd
I2C: Add an I2C character driver
2016-02-02 08:30:54 -06:00
Gregory Nutt
4304405bba
I2C Slave: I don't think that the setfrequency method makes sense in a slave interface.
2016-02-02 06:07:51 -06:00
Gregory Nutt
456b5f06dc
Clean up some comments
2016-02-01 19:52:16 -06:00
Gregory Nutt
69ce24c70c
I2C: Remove the setfrequency method from the interface
2016-02-01 16:31:13 -06:00
Gregory Nutt
6ad641888b
Add I2C frequency to the i2c_msg_s structure
2016-02-01 14:17:20 -06:00
Gregory Nutt
f9053182d3
I2C: Remove setaddress method
2016-02-01 12:14:31 -06:00
Gregory Nutt
ecdc428086
Remove the read and write methods from the I2C interface
2016-02-01 09:22:22 -06:00
Gregory Nutt
8c9bddf998
I2C: Eliminate the I2C_WRITE and I2C_READ macros
2016-02-01 08:57:22 -06:00
Gregory Nutt
10000841a8
The I2C_TRANSFER method is no longer optional
2016-01-31 14:16:05 -06:00
Gregory Nutt
9370b94241
compiler.h: Missing IOBJ/IPTR definitions for the ZDS-II toolchain
2016-01-31 12:44:44 -06:00
Gregory Nutt
af335827d0
Update ChangeLog
2016-01-30 11:27:49 -06:00
Gregory Nutt
cccfb11e38
Forgot to add a file in the last commit
2016-01-30 08:49:20 -06:00
Gregory Nutt
3a781a2d3f
Remove I2C slave methods from I2C master interface; rename i2c_dev_s to i2c_master_s.
2016-01-30 08:36:47 -06:00
Gregory Nutt
ceb415204e
Move include/nuttx/i2c.h to include/nuttx/i2c/i2c_master.h
2016-01-30 08:00:16 -06:00
Vladimir Komendantskiy
19feab1bd6
drivers/modem/u-blox.c and include/nuttx/drivers/u-blox.h: Add an upper half driver for the U-Blox Modem. From Vladimir Komendantskiy
2016-01-30 07:37:43 -06:00
Entinger Alexander
dc8c14aa53
Driver for the 24-Bit Differential Input ADC ADS1242 that communicates via SPI with a MCU. Reading the ADC conversion result as well as configuring the ADC, setting the input channel, etc. is implemented via ioctl calls. However, it does not yet implement the standard ADC interface.
2016-01-29 07:41:23 -06:00
Gregory Nutt
fd896330d8
Remove the final vestiges of up_spiinitialize()
2016-01-27 09:27:56 -06:00
Gregory Nutt
11dab241de
SPI slave: Prototype for MCU-specific slave initialization function removed from spi_slave.h
2016-01-26 13:04:12 -06:00
Gregory Nutt
b6b3c2be3e
Add I2C_TRANSFER based wrappers for I2C_TRANSFER as well
2016-01-26 10:57:51 -06:00
Gregory Nutt
d4a53ee131
I2C: Eliminate the I2C_WRITEREAD method
2016-01-26 10:26:16 -06:00
Gregory Nutt
67f38169b2
drivers/i2c: Move wrapper that implements I2C_WRITEREAD using I2C_transfer from pc9555.c to a new, comon i2c directory
2016-01-26 09:58:18 -06:00
Gregory Nutt
eac271413f
Add more 32-bit math operations; Update ChangeLog
2016-01-25 11:19:25 -06:00
Gregory Nutt
047ed9e543
Add some utilities to support 64-bit math operations on platforms that do not support long long types. Not yet used anywhere
2016-01-25 09:56:00 -06:00
Gregory Nutt
564a1ce606
Cosmetic clean-up of comments
2016-01-24 08:21:55 -06:00
Gregory Nutt
a4a496ad6f
spi.h needs to include errno.h now
2016-01-23 19:13:31 -06:00
Gregory Nutt
7edf921c5e
Remove CONFIG_SPI_OWNBUS: Now it is not just a good idea, it is the law
2016-01-23 18:54:36 -06:00
Gregory Nutt
accd99db25
Add an optional hwfeatures method to the SPI interface
2016-01-23 15:12:45 -06:00
Gregory Nutt
84d4cb007b
clock_systimer: 64-bit timer accesses are not atomic. Noted by Freddie Chopin.
2016-01-22 12:24:36 -06:00
Gregory Nutt
2dcebe1e3d
Purely cosmetic changes from review of last commit
2016-01-22 07:11:29 -06:00
Stefan Kolb
2b05f3e830
I/O Expander: Fix some bad macros, make naming consisted
2016-01-22 07:08:59 -06:00
Gregory Nutt
032ad1b70b
Remove clock_systimer32 and clock_systimer64. There is now only clock_systimer
2016-01-21 16:49:24 -06:00
Gregory Nutt
7db9a952bc
Fix an error in conditional compilation introduced in the last set of changes
2016-01-21 13:42:34 -06:00
Gregory Nutt
f348e68069
Update to use 64-bit timer when available
2016-01-21 11:54:26 -06:00
Gregory Nutt
3a59eb4340
Fix romdisk_register prototype. Most ROMFS images actually lie in RAM. If moved to FLASH with const storage class, then changes are required to avoid warnings
2016-01-20 13:04:07 -06:00
Gregory Nutt
f849116a0b
Add implementatino of Tiny Encryption Algorithm
2016-01-19 16:37:45 -06:00
Gregory Nutt
e73ccd6638
Update some comments
2016-01-18 16:27:46 -06:00
Frank Benkert
da33ec6b2e
CAN: Add more extensive error reporting information
2016-01-18 12:22:27 -06:00
Gregory Nutt
9844036a74
Merged in paulpatience/nuttx/lsm9ds1 (pull request #48 )
...
Add LSM9DS1 accelerometer, gyroscope and magnetometer
2016-01-17 15:06:37 -06:00
Paul A. Patience
57b8a9526d
Add LSM9DS1 accelerometer, gyroscope and magnetometer
2016-01-17 16:01:14 -05:00
Gregory Nutt
63301fe213
Cosmetic changes from review of last pull request
2016-01-17 14:52:11 -06:00
Janne Rosberg
fb1bf10a3d
add pn532 support
...
Signed-off-by: Janne Rosberg <janne.rosberg@offcode.fi>
2016-01-17 22:17:49 +02:00
Alexander Entinger
75d6c4cee3
drivers/sensors/mcp9844: Driver for the MCP9844 I2C digital temperature sensor with a selectable resolution
2016-01-15 07:25:58 -06:00
Gregory Nutt
0889963b50
resolv.conf: Fix some basic compilation issues. Logic still not complete.
2016-01-14 08:32:20 -06:00
Gregory Nutt
8e9f884eb7
Step 1 in /etc/resolv.conf support
2016-01-13 15:06:44 -06:00
Gregory Nutt
fbb4dcc0af
Some networking logic was used helpers from apps/netutils. Not good. Quick fix is to duplicate logic
2016-01-09 15:57:44 -06:00
Gregory Nutt
1ac6ecac87
Changes to last pull request needed for conformance with coding standard
2016-01-09 07:27:22 -06:00
Dimitry Kloper
d219f3a36e
Introduce arch-specific debug macro hooks
...
Make it possible for arch code to provide hook macros for NuttX dbg
that will lead to arch-specific syslog() and lowsyslog() variants.
2016-01-09 14:28:12 +02:00
Gregory Nutt
b28bf55fb0
Cosmetic spacing change
2016-01-05 14:52:20 -06:00
Gregory Nutt
670ac9fb2f
Fix an ommission in compiler.h
2016-01-05 14:46:49 -06:00
Dimitry Kloper
06438b0dcc
Fix 64-bit clock-related constant value evaluation for AVR compiler
...
This may be specific for Atmel AVR8 toolchain compiler.
The problem is that despite of being 8-bit architecture
avr-gcc supports uint64_t, but the following code
uint64_t value = 10000 * 1000;
produces a wrong negative value in the final code (tested
both with and without optimization).
The work-around is simple:
uint64_t value = 10000 * 1000L;
The code is a reduced part from sched/signal/sig_timedwait.c where
waitticks64 is calculated using NSEC_PER_TICK. This one is defined
as USEC_PER_TICK * NSEC_PER_USEC which leads to the example above.
2016-01-05 12:02:02 -06:00
Dimitry Kloper
06d83c6261
Introduce support for Atmel toolchain in-flash strings
...
Atmel toolchain AVR compiler provides a transparent in-flash object support using __flash and __memx symbols. The former indicates to compiler that this is a flash-based object. The later used with pointer indicates that the referenced object may reside either in flash or in RAM. The compiler automatically makes 32-bit pointer with flag indicating whether referenced object is in flash or RAM and generates code to access either in run-time. Thus, any function that accepts __memx object can transparently work with RAM and flash objects.
For platforms with a Harvard architecture and a very small RAM like AVR this allows to move all constant strings used in trace messages to flash in the instruction address space, releasing resources for other things.
This change introduces IOBJ and IPTR type qualifiers. The 'I' indicates that the object may like in instruction space on a Harvard architecture machine.
For platforms that do not have __flash and __memx or similar symbols IOBJ and IPTR are empty, making the types equivalent to, for example, 'const char' and 'const char*'. For Atmel compiler these will become 'const __flash char' and 'const __memx char*'. All printf() functions and syslog() functions are changed so that the qualifier is used with the format parameter.
From: Dimitry Kloper <dikloper@cisco.com>
2016-01-05 10:29:29 -06:00
Dimitry Kloper
b48ca00cd5
The delay parameter has 'int' type while explicit int32_t is used in sigtimedwait() (sig_timedwait.c) This can lead to wrong argument for systems that have default int size different than int32 (namely AVR).
2016-01-05 07:58:04 -06:00
Gregory Nutt
b1938c065d
sys/time.h: Fix timersub macro; time_t is unsigned
2015-12-31 09:05:35 -06:00
Gregory Nutt
c1fff4706c
signals: Adds a very limited, minimal implementation for SIGEV_THREAD
2015-12-30 15:01:14 -06:00
Gregory Nutt
849df03d22
Update dates on files modified for SIGEV_THREAD support
2015-12-30 13:28:39 -06:00
Gregory Nutt
9835eeb181
signals: Basic framework to support SIGEV_THREAD
2015-12-30 13:20:31 -06:00
Gregory Nutt
e76e8f41c6
pthread: Correct default schedule policy
2015-12-30 12:18:24 -06:00
Manuel Stühn
4350b0ba0c
Move macros timeradd() and friends from time.h to sys/time.h.
2015-12-24 07:09:39 -06:00
Gregory Nutt
7110634a38
Trivial typo fix in a comment
2015-12-23 16:09:49 -06:00
Gregory Nutt
5d84cd5d11
Improve a few comments
2015-12-23 15:17:16 -06:00
Manuel Stühn
3002023798
time.h: Add timeradd(), timersub(), timerclear(), timerisset(), and timercmp() as macros. These are non-POSIX interfaces, but included in most BSD deriviatives, included Linux. From Manuel Stühn
2015-12-23 15:13:01 -06:00