SlideShare a Scribd company logo
1 of 48
Download to read offline
從 u-boot	 移植	 NDS32	 談
嵌入式系統開放原始碼開發的
        一些經驗

     Macpaul	Lin
    OSDC.TW	2011
這份投影片或許也對寫
                Kernel,	Driver,	 以及 C 語言
                        的人有幫助
             ( 習慣良好的老鳥就不用聽這個了 )




2011/03/25         Macpaul	Lin	-	OSDC.TW	2011   2
其實是在講怎樣	射	打 patch




2011/03/25      Macpaul	Lin	-	OSDC.TW	2011   3
還有怎樣把爛 code 清乾淨




2011/03/25     Macpaul	Lin	-	OSDC.TW	2011   4
因為本來要	射	打的 patch 都一直被打(槍)




2011/03/25   Macpaul	Lin	-	OSDC.TW	2011   5
必要時還要幫老闆	打槍	打老闆的槍
        (PATCH	v1	started	from	2010/08)




2011/03/25      Macpaul	Lin	-	OSDC.TW	2011   6
一切為的都是	豬頭	 code 的愛與和平呀




2011/03/25   Macpaul	Lin	-	OSDC.TW	2011   7
Who	Am	I?
• Macpaul	Lin
   – Interests	and	works:
       •   Open	Source
       •   Networking
       •   OpenWrt	(2006	–	2010)
       •   U-boot	(2010	–	2011)
   – Contacts:
       • macpaul@gmail.com	(macpaul@andestech.com)
       • http://www.plurk.com/macpaul	
       • http://www.facebook.com/macpaul	


2011/03/25          Macpaul	Lin	-	OSDC.TW	2011   8
Outline
•   Introduction	to	u-boot	project.
•   The	software	architecture	of	U-boot.
•   Code	commit	rules	and	work	flow.
•   Suggestions	and	experiences	sharing.




2011/03/25      Macpaul	Lin	-	OSDC.TW	2011   9
U-boot	-	History
• http://en.wikipedia.org/wiki/Das_U-Boot	
• Das	Unterseeboot
   – German	for	"the	submarine."
• GPL
• Boot	loader	for	embedded	System
      • PPC,	ARM,	AVR32,	MIPS,	x86,	68k,	Nios,	and	
        MicroBlaze.	(and	NDS32)
      • U-Boot	originated	in	work	done	by	Magnus	Damm	on	a	
        8xx	PowerPC	bootloader	called	8xxROM.
      • Wolfgang	Denk	moved	the	project	to	SourceForge.net.
   – http://www.denx.de/wiki/U-Boot/WebHome
2011/03/25        Macpaul	Lin	-	OSDC.TW	2011   10
U-boot	–	Boot	Loader
• http://en.wikipedia.org/wiki/Boot_loader#Bo
  ot_loader	
• Features
   – It	prepars	CPU	and	RAM	to	accesse	the	
     nonvolatile	devices	to	load	OS	into	ram.	
   – It	provides	firmware	upgrade	and	fail-safe	
     functions.
   – It	could	run	basic	diagnostic	and	testing.
   – You	can	develop	simple	application	on	u-boot.
      • It	also	support	non-OS	frame	buffer	display	(VFD).


2011/03/25         Macpaul	Lin	-	OSDC.TW	2011   11
u-boot	–	
Why	release	code	to	u-boot	is	important	?
• For	customers,
   – Help	on	booting	their	devices.
   – Machine	type	ID	is	related	to	Linux	Kernel	bring	
     up.
• Release	and	Clean	up	is	important.
   – Boss	usually	think	clean	up	doesn't	help	on	
     contribution	to	the	company.
   – Dirty	code	and	old	code	should	be	considered	as	
     garbage	and	debt.
      • No	productivity	to	RD.
   – It	made	RD	always	maintaining	old	patches	when	
     new	release	on	official	project	is	coming.
2011/03/25         Macpaul	Lin	-	OSDC.TW	2011   12
U-boot	–	Development	Model
• Task	Force
   – Gate	Keepers	(custodian)	by	git	repository.
      • Functions,	Architectures,	and	Vendors.
• Schedule
      • Development	happens	in	Release	Cycles	of	2	months.
      • The	first	2	weeks	are	called	Merge	Window,	which	is	
        followed	by	a	Stabilization	Period.
      • Patches	with	new	code	get	only	accepted	while	the	
        Merge	Window	is	open.	
      • During	the	Stabilization	Period,	only	patches	that	
        contain	bug	fixes	get	applied.	
      • Release.

2011/03/25         Macpaul	Lin	-	OSDC.TW	2011   13
U-boot	-	Custodians
• The	Custodians	take	responsibility	for	some	
  area	(git	repo)	of	the	U-Boot	code.
• http://www.denx.de/wiki/U-Boot/Custodians	
• http://patchwork.ozlabs.org/project/uboot/list/




2011/03/25      Macpaul	Lin	-	OSDC.TW	2011   14
U-boot	–	Custodian	git	repo
• The	most	stable	and	up-to-date	main	trunk	
  will	be	under	"master"	branch.
• The	most	new	features	and	bug	fix	will	be	in	
  "next"	branch.




2011/03/25     Macpaul	Lin	-	OSDC.TW	2011   15
The	System	view	of	u-boot
(boards.cfg)

Target,    ARCH, CPU,      Board,    Vendor,   SoC
a320evb    arm   arm920t   ‐         faraday   a320
Sheevaplug arm   arm926ejs ‐         Marvell   kirkwood
adp‐ag101  nds32 n1213     adp‐ag101 AndesTech ag101




2011/03/25        Macpaul	Lin	-	OSDC.TW	2011   16
The	software	architecture	
                of	u-boot
u‐boot ‐ api
       ‐ arch       ‐ nds32 – cpu ‐ soc
       ‐ board              ‐ include
       ‐ common             ‐ lib
       ‐ drivers
       ‐ examples
       ‐ include
       ‐ lib
       ‐ net
       ‐ tools
2011/03/25    Macpaul	Lin	-	OSDC.TW	2011   17
Boot	process	of	u-boot
!	Andesboot	Startup	Code	(reset	vector)	(start.S)
!
!							1.						bootstrap
!															1.1	reset	-	start	of	Andesboot
!															1.2	to	superuser	mode	-	as	is	when	reset
!															1.4	Do	lowlevel_init
!																							-	(this	will	jump	out	to	lowlevel_init.S	in	SoC)
!																							-	(lowlevel_init)
!															1.3	Turn	off	watchdog	timer
!																							-	(this	will	jump	out	to	watchdog.S	in	SoC)
!																							-	(turnoff_watchdog)
!							2.						Do	critical	init	when	reboot	(not	from	mem)
!							3.						Relocate	andesboot	to	ram
!							4.						Setup	stack
!							5.						Jump	to	second	stage	(start_andesboot)
2011/03/25                          Macpaul	Lin	-	OSDC.TW	2011          18
Boot	process	of	u-boot
arch/nds32/start.S ‐>
arch/nds32/cpu/n1213/ag101/lowlevel_init.S ‐> 
arch/nds32/start.S ‐>
arch/nds32/cpu/n1213/ag101/watchdog.S ‐> 
arch/nds32/start.S ‐> 
start_andesboot() (arch/nds32/lib/board.c)




2011/03/25        Macpaul	Lin	-	OSDC.TW	2011   19
Boot	process	of	u-boot
(arch/nds32/lib/board.c)
start_andesboot() ‐> 
init_sequence[] ‐> 
        arch_cpu_init()
        pmu_init()
        board_init()
        interrupt_init()
        timer_init()
        env_init()
        init_baudrate()
        serial_init() ...
2011/03/25        Macpaul	Lin	-	OSDC.TW	2011   20
Boot	process	of	u-boot
(board/AndesTech/adp‐ag101.c)

board_init()
dram_init()
board_eth_init()
board_flash_get_legacy()




2011/03/25         Macpaul	Lin	-	OSDC.TW	2011   21
Board	and	System	config
               in	u-boot
(include/configs/adp‐ag101.h)

#define CONFIG_ADP_AG101
#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_SYS_TEXT_BASE   0x03200000
#define CONFIG_SYS_CLK_FREQ    48000000
#define CONFIG_BAUDRATE        38400
#define CONFIG_STACKSIZE       (128 * 1024)
#ifdef CONFIG_FTSDMC021
#include <faraday/ftsdmc021.h>
#define PHYS_SDRAM_0_SIZE       0x04000000 (64MB)
2011/03/25       Macpaul	Lin	-	OSDC.TW	2011   22
Code	commit	rules
              and	work	flow
• U-boot	Mailing	list:
   – u-boot@lists.denx.de	
   – http://lists.denx.de/mailman/listinfo/u-boot	
   – Archives:	http://lists.denx.de/pipermail/u-boot/	




2011/03/25       Macpaul	Lin	-	OSDC.TW	2011   23
u-boot	–	commit	rules
• Patches	with	related	features	go	together.
• Patches	must	be	ordered	and	bisected.
  – Headers	comes	before	C	files.
  – Conformed	to	make	and	build	logic.
• Patches	must	go	with	clear	descriptions.
  – Subject	(in	category)
  – Descriptions
  – Signed-off
• Revised	patches	must	be	labeled	with	
  versions	and	simple	change	log.
• Custodians	will	test	and	apply	the	patches.
2011/03/25     Macpaul	Lin	-	OSDC.TW	2011 24
Patches	with	related	features	
             go	together
• Use	git	rebase	-i	HEAD~7
   – git	commit	--amend
   – git	rebase	--continue
nds32/ag101/adp-ag101:	add	board	adp-ag101	support
nds32:	common	bdinfo,	bootm,	image	support
nds32:	standalone	support
nds32/lib:	add	generic	funcs	in	NDS32	lib
nds32/ag101:	cpu	and	init	funcs	of	SoC	ag101
nds32/core	N1213:	NDS32	N12	core	family	N1213
nds32:	add	header	files	support	for	nds32

2011/03/25        Macpaul	Lin	-	OSDC.TW	2011   25
Split	git	commits
• 我接手	 u-boot	 的時候整包	 code	 全部被綁在	
  2	 個	 patch	(git	commits)	 裡面
• patchutils	(doesn't	compatible	with	git)
   – filterdiff
      • Same	single	patch	file	into	hunks.
   – splitdiff
      • Split	out	every	single	file-level	patch.




2011/03/25           Macpaul	Lin	-	OSDC.TW	2011    26
Patches	must	go	with	clear	
              descriptions.
Author:     Macpaul Lin <macpaul@andestech.com>
AuthorDate: Mon Oct 25 14:03:51 2010 +0800
Commit:     macpaul <macpaul@andestech.com>
                                                       subject
CommitDate: Sat Mar 26 00:54:17 2011 +0800

    nds32: add NDS32 support into common header file      description

                                                             signed-off
    Add NDS32 support into common header file.              git commit -s

    Signed‐off‐by: Macpaul Lin <macpaul@andestech.com>



 do not use:
2011/03/25
 bug number         Macpaul	Lin	-	OSDC.TW	2011    27
Revised	patches	must	be	labeled	
          with	versions	
       and	simple	change	log
Signed‐off‐by: Macpaul Lin <macpaul@andestech.com>
‐‐‐
Changes for v1‐v4:
   ‐ Code cleanup and style formatting.
Changes for v5‐v6:
   ‐ This patch also updated the following changes against the
     change after master tree (v2010.12‐rc1).
   ‐ fix upper case definitions in cache.h
   ‐ Support GD_FLG_ENV_READY and env_buf vars in nds32 
global_data.h.
   ‐ Add readsb, writesb functions into io.h.

2011/03/25           Macpaul	Lin	-	OSDC.TW	2011 28
http://www.kernel.org/pub/software/scm/git/docs/user‐
manual.html#cleaning‐up‐history
Use	git	send-email	to	send	the	
               patch
• Remembered	add	the	mailing	list	and	related	
  developers	into	the	cc.	list.
• git	send-email	goes	plain	text.
   – Do	not	add	patch	as	an	attachment.
   – Do	not	use	mime-type	in	mail	header.
   – Do	not	allow	your	company	add	"copyright"	and	
     "confidential"	in	the	last	section	of	your	patch.




2011/03/25       Macpaul	Lin	-	OSDC.TW	2011   29
Coding	style
• Linux	Coding	style.
   – http://lxr.linux.no/#linux+v2.6.38/Documentati
     on/CodingStyle	
   – linux/scripts/checkpatch.pl
• U-boot	Coding	style.
   – http://www.denx.de/wiki/U-Boot/CodingStyle
   – http://lxr.linux.no/linux/Documentation/CodingS
     tyle



2011/03/25       Macpaul	Lin	-	OSDC.TW	2011   30
U-boot	-	Coding	style
• All	variables,	functions,	marcos	goes	to	full	
  uppercase	or	lower	case.
   – Do	not	use	“int	IE6mustDie;"	declaration.
• You	must	use	model	name	to	declare	your	
  device	defines.
      • Device	offset	and	defines	 在	 header	file 宣告必須使用
        產品 " 型號 " ,
      • Ex:	use	FTSDMC021,	FTSDMC020,
         – Do	not	use	function	description:	“DRAM_CONTROLLER"
      • Ex:	CONFIG_FTSDMC021_BANK_SIZE_1M
         – Do	not	use:	SDRAM_BANK_SIZE_1M


2011/03/25          Macpaul	Lin	-	OSDC.TW	2011   31
U-boot	-	Coding	style
• Files	in	Makefile	or	in	config.mk	must	be	
  ordered.
   – A	file	begins	with	'a'	must	goes	before	then	other	
     begins	with	'b'.
   – Ex:
        +START								=	start.o
        +COBJS								=	interrupts.o	cpu.o	<---	 這樣會被打槍
   – Please	keep	all	such	lists	sorted.	'c'	<	'i'.




2011/03/25         Macpaul	Lin	-	OSDC.TW	2011   32
U-boot	-	Coding	style
• Global	code	must	never	include	any	board	
  specific	header	files.
  – This	is	fundeamentally	flawed.	
  – Wrong	Ex:
    #include <board/AndesTech/include/porting.h>
    #include "../../../board/AndesTech/include/porting.h"
• Declare	register	offsets	by	C	structures,	do	
  not	use	#define.
      • If	definitions	of	register	offsets	used	by	
        assembly	code	is	necessary,	use	tool	
        (make-asm-offset)	to	generate	the	asm.	
        code.
2011/03/25         Macpaul	Lin	-	OSDC.TW	2011 33
U-boot	-	Coding	style
• Comment:
   – Ex:
     /*
      * reset handler
      */
     or 
     /* status register */
   – Wrong	Ex:
     /****************************
      * reset handler
      *===========================
      */           Macpaul	Lin	-	OSDC.TW	2011
2011/03/25                                      34
     // macpaul: bug fix: 2923: halt
Coding	style
• Coding	style	is	related	to	version	control	
  system.
   – git	(diff)	is	a	mass	of	the	stack	of	patches.
   – Reduce	dependance	between	patches.
   – Reduce	unnecessary	and	useless	object,	log,	
     history	in	version	control	repository.
• Do	not	follow	the	old	days'	coding	style.
   – Please	keep	your	coding	style	rules	updated.
   – Especially	do	not	copy	from	“ARM”	and	
     “x86”	code.	

2011/03/25       Macpaul	Lin	-	OSDC.TW	2011   35
Coding	style
• No	Chinese	in	comment.
     if	(sound)		/*	 開聲音	 */
        writeb(0x1,	dev->mute);
• Do	not	exceed	80	characters	in	a	single	line.
   – ~/.vimrc
     highlight	OverLength	ctermbg=red	ctermfg=white	
     guibg=#592929
     match	OverLength	/%81v.+/
• Do	not	use	#if	0	and	#if	1.
   – Use	meaningful	#define	CONFIG_OSDC_TW_R1

2011/03/25         Macpaul	Lin	-	OSDC.TW	2011   36
Coding	style	-	misc
   – Do	not	use	//...	as	comment.
      • please	use	/*	…	*/
   – Be	careful	on	point	statement
      • Ex:	void	*addr
      • Wrong	Ex:
         – void	*	addr
   – Be	careful	on	loop	statement
      • Ex:
         – for	(i	=	0;	i	<=	5	;	i++)
   – Be	careful	on	brace	statement	with	correct	
     space.
      • Ex:	void	test(void	target,	void	case)
2011/03/25            Macpaul	Lin	-	OSDC.TW	2011   37
Coding	style
• You	must	maintain	the	commit	year	of	your	
  copyright/copyleft	statement.
   – 不論	 code	 多老,只要 commit 沒有進	
     maintrunk ,都必須使用「真正」進 commit 的年
     份。
   – Ex:
        #	(C)	Copyright	2006
        Macpaul	Lin,	Andestech	<macpaul@andestech.com>	
      • Wolfgang's	comment:	
         – So	no	work	has	been	done	on	this	in	the	last	4	years?		I	
           guess	you	want	to	update	your	Copyright	messages	-	all	of	
           them.


2011/03/25           Macpaul	Lin	-	OSDC.TW	2011     38
Coding	style
• The	beginning	of	a	functions	is	declaration.
   – Do	not	put	comments	at	first.
   – Wrong	Ex:
     void	cleanup_before_linux(void)
     {
        /*	this	function	is	called	just	before	we	call	linux	*/
     									int	i;
     }



2011/03/25             Macpaul	Lin	-	OSDC.TW	2011   39
Coding	style
• Functional	description	goes	before	then	
  function.
   – Ex:
     /*
      * reset handler
      */
     void do_reset()
     {



2011/03/25     Macpaul	Lin	-	OSDC.TW	2011   40
Coding	style
• 每一行行尾不能有空白或者 t 字元結尾,所有的
  行尾都必須是非空白字元結尾。
   – No	trailing	spaces.
      • "tt$",	"t				$",	"			t"
   – No	spaces	at	the	beginning.
   – Do	not	use	mixed	"			t"	to	do	indent.




2011/03/25             Macpaul	Lin	-	OSDC.TW	2011   41
Coding	style	–	volatile	
• What	is	volatile?
   – http://en.wikipedia.org/wiki/Volatile_variable	
   – http://en.wikipedia.org/wiki/Volatile_variable#Op
     timization_comparison_in_C	
• Do	not	use	volatile	in	Linux,	driver	and	boot	
  loader.
   – http://lxr.linux.no/#linux+v2.6.38/Documentati
     on/volatile-considered-harmful.txt




2011/03/25        Macpaul	Lin	-	OSDC.TW	2011   42
Coding	style	–	volatile
• Like	volatile,	the	kernel	primitives	which	
  make	concurrent	access	to	data	safe	
  (spinlocks,	mutexes,	memory	barriers,	etc.)
  are	designed	to	prevent	unwanted	
  optimization.
   – Proper	spinlock.
      • Volatile	variables	without	spinlock	still	cause	problem.	
   – Memory-mapped	I/O	register	must	be	accessed	
     by	accessing	functions	with	lock.
   – Proper	code	for	busy	Waiting.
        while	(my_variable	!=	what_i_want)
             cpu_relax();
2011/03/25              Macpaul	Lin	-	OSDC.TW	2011   43
Coding	style	–	volatile
• There	are	still	a	few	rare	situations	where	
  volatile	makes	sense	in	the	kernel.
      • Accessor	functions	might	use	volatile	on	where	direct	
        I/O	memory	access	does	work.
      • Inline	assembly	code	which	changes	memory,	but	
        which	has	no	other	visible	side	effects,	risks	being	
        deleted	by	GCC.
      • The	jiffies	variable	is	special	in	that	it	can	have	a	
        different	value	every	time	it	is	referenced,	but	it	can	be	
        read	without	any	special	locking.
      • Pointers	to	data	structures	in	coherent	memory	which	
        might	be	modified	by	I/O	devices	can,	sometimes,	
        legitimately	be	volatile.

2011/03/25          Macpaul	Lin	-	OSDC.TW	2011   44
Coding	style	–	volatile
• Wolfgang:
   – Note:	this	also	and	especially	applies	to	the	
     "volatile"	and	"using	I/O	accessors	instead	of	
     pointer	acesses"	issues.
   – [If	not	yet,	you	would	probably	soon	run	into	
     issues	when	switching	to	GCC	4.5.x	or	even	
     GCC	4.6.]
      • https://nongnu.org/software/gcc/gcc-
        4.6/changes.html	
      • A	new	switch	-fstrict-volatile-bitfields	has	been	added.	
        Using	it	indicates	that	accesses	to	volatile	bitfields	
        should	use	a	single	access	of	the	width	of	the	field's	
        type.
2011/03/25          Macpaul	Lin	-	OSDC.TW	2011   45
Coding	Style	–	a	testing
printf("n");
printf("pc : [<%08lx>]  sp: [<%08lx>]n"
       "ra : %08lx  gp : %08lx  fp : %08lxn",
        regs‐>PC, regs‐>SP, regs‐>RA, regs‐>GP, regs‐>FP);
printf("D1H: %08lx  D1L: %081x  D0H: %08lx  D0L: %08lxn",
        regs‐>D1HI, regs‐>D1LO, regs‐>D0HI, regs‐>D0LO);
printf("r27: %08lx  r26: %08lx  r25: %081x  r24: %08lxn",
        regs‐>R27, regs‐>R26, regs‐>R25, regs‐>R24);
printf("r23: %08lx  r22: %081x  r21: %08lx  r20: %08lxn",
        regs‐>R23, regs‐>R22, regs‐>R21, regs‐>R20);




2011/03/25          Macpaul	Lin	-	OSDC.TW	2011   46
Release early, release often.




2011/03/25        Macpaul	Lin	-	OSDC.TW	2011   47
Q & A.
  (Patch v7 for NDS32 porting is under cleanup.)




2011/03/25      Macpaul	Lin	-	OSDC.TW	2011   48

More Related Content

What's hot

LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideLinaro
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITELinaro
 
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...Anne Nicolas
 
BKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherBKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherLinaro
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
 
Kernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernelKernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernelAnne Nicolas
 
BKK16-505 Kernel and Bootloader Consolidation and Upstreaming
BKK16-505 Kernel and Bootloader Consolidation and UpstreamingBKK16-505 Kernel and Bootloader Consolidation and Upstreaming
BKK16-505 Kernel and Bootloader Consolidation and UpstreamingLinaro
 
淺談 Live patching technology
淺談 Live patching technology淺談 Live patching technology
淺談 Live patching technologySZ Lin
 
BKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVABKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVALinaro
 
BKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in CentosBKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in CentosLinaro
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...Linaro
 
MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206Linaro
 
BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?Linaro
 
Kernel Recipes 2013 - Kernel for your device
Kernel Recipes 2013 - Kernel for your deviceKernel Recipes 2013 - Kernel for your device
Kernel Recipes 2013 - Kernel for your deviceAnne Nicolas
 
LAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALinaro
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLinaro
 
Long-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionLong-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionSZ Lin
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and InsightsGlobalLogic Ukraine
 

What's hot (20)

LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITE
 
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
 
BKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherBKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcher
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Kernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernelKernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernel
 
BKK16-505 Kernel and Bootloader Consolidation and Upstreaming
BKK16-505 Kernel and Bootloader Consolidation and UpstreamingBKK16-505 Kernel and Bootloader Consolidation and Upstreaming
BKK16-505 Kernel and Bootloader Consolidation and Upstreaming
 
淺談 Live patching technology
淺談 Live patching technology淺談 Live patching technology
淺談 Live patching technology
 
BKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVABKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVA
 
BKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in CentosBKK16-301A Expanding the Enterprise Landscape in Centos
BKK16-301A Expanding the Enterprise Landscape in Centos
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
 
MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206
 
BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?
 
Kernel Recipes 2013 - Kernel for your device
Kernel Recipes 2013 - Kernel for your deviceKernel Recipes 2013 - Kernel for your device
Kernel Recipes 2013 - Kernel for your device
 
LAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVALAS16-507: LXC support in LAVA
LAS16-507: LXC support in LAVA
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
 
Long-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionLong-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux Distribution
 
Linux Kernel Live Patching
Linux Kernel Live PatchingLinux Kernel Live Patching
Linux Kernel Live Patching
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and Insights
 

Viewers also liked

Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
 
政黨票的故事
政黨票的故事政黨票的故事
政黨票的故事Macpaul Lin
 
Porting linux to a new architecture
Porting linux to a new architecturePorting linux to a new architecture
Porting linux to a new architectureKALRAY
 
Linux Porting
Linux PortingLinux Porting
Linux PortingChamp Yen
 
U boot 程式碼打掃計畫
U boot 程式碼打掃計畫U boot 程式碼打掃計畫
U boot 程式碼打掃計畫Macpaul Lin
 
Why sending patches back is so important
Why sending patches back is so importantWhy sending patches back is so important
Why sending patches back is so importantMacpaul Lin
 
How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015Macpaul Lin
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)Macpaul Lin
 
TERMS THAT WOULD MAKE KINK LOOK INNOCENT
TERMS THAT WOULD MAKE KINK LOOK INNOCENTTERMS THAT WOULD MAKE KINK LOOK INNOCENT
TERMS THAT WOULD MAKE KINK LOOK INNOCENTKakajan Haytlyyev
 
Cómo hablar de sexualidad con los adolescentes
Cómo hablar de sexualidad con los adolescentes Cómo hablar de sexualidad con los adolescentes
Cómo hablar de sexualidad con los adolescentes Alejandro Pooley
 
Aberraciones sexuales
Aberraciones sexualesAberraciones sexuales
Aberraciones sexualesdaniguzman
 

Viewers also liked (20)

Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
 
政黨票的故事
政黨票的故事政黨票的故事
政黨票的故事
 
Porting linux to a new architecture
Porting linux to a new architecturePorting linux to a new architecture
Porting linux to a new architecture
 
Linux Porting
Linux PortingLinux Porting
Linux Porting
 
U boot 程式碼打掃計畫
U boot 程式碼打掃計畫U boot 程式碼打掃計畫
U boot 程式碼打掃計畫
 
Why sending patches back is so important
Why sending patches back is so importantWhy sending patches back is so important
Why sending patches back is so important
 
How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
Qt5 embedded
Qt5 embeddedQt5 embedded
Qt5 embedded
 
OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
TERMS THAT WOULD MAKE KINK LOOK INNOCENT
TERMS THAT WOULD MAKE KINK LOOK INNOCENTTERMS THAT WOULD MAKE KINK LOOK INNOCENT
TERMS THAT WOULD MAKE KINK LOOK INNOCENT
 
Cómo hablar de sexualidad con los adolescentes
Cómo hablar de sexualidad con los adolescentes Cómo hablar de sexualidad con los adolescentes
Cómo hablar de sexualidad con los adolescentes
 
skipfish
skipfishskipfish
skipfish
 
Metadata - What is Unseen
Metadata - What is UnseenMetadata - What is Unseen
Metadata - What is Unseen
 
Aberraciones sexuales
Aberraciones sexualesAberraciones sexuales
Aberraciones sexuales
 
Sin City
Sin CitySin City
Sin City
 
ssh
sshssh
ssh
 
BDSM
BDSMBDSM
BDSM
 
tit
tittit
tit
 

Similar to 從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗

Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdatedoscon2007
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Fwdays
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...Toradex
 
LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201Linaro
 
Porting_uClinux_CELF2008_Griffin
Porting_uClinux_CELF2008_GriffinPorting_uClinux_CELF2008_Griffin
Porting_uClinux_CELF2008_GriffinPeter Griffin
 
LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201Linaro
 
LAS16-200: Firmware summit - Tianocore Progress and Status
LAS16-200:  Firmware summit - Tianocore Progress and StatusLAS16-200:  Firmware summit - Tianocore Progress and Status
LAS16-200: Firmware summit - Tianocore Progress and StatusLinaro
 
Starting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 ProcessorsStarting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 ProcessorsToradex
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xSenturus
 
Ap 06 4_10_simek
Ap 06 4_10_simekAp 06 4_10_simek
Ap 06 4_10_simekNguyen Vinh
 
HKG15-902: Upstreaming 201
HKG15-902: Upstreaming 201HKG15-902: Upstreaming 201
HKG15-902: Upstreaming 201Linaro
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLinaro
 
Tuning systemd for embedded
Tuning systemd for embeddedTuning systemd for embedded
Tuning systemd for embeddedAlison Chaiken
 
[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...SZ Lin
 
BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr Linaro
 
Fn project quick installation guide
Fn project quick installation guideFn project quick installation guide
Fn project quick installation guideJohan Louwers
 

Similar to 從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗 (20)

Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdated
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
 
LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201
 
Porting_uClinux_CELF2008_Griffin
Porting_uClinux_CELF2008_GriffinPorting_uClinux_CELF2008_Griffin
Porting_uClinux_CELF2008_Griffin
 
LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201LCU14 114- Upstreaming 201
LCU14 114- Upstreaming 201
 
LAS16-200: Firmware summit - Tianocore Progress and Status
LAS16-200:  Firmware summit - Tianocore Progress and StatusLAS16-200:  Firmware summit - Tianocore Progress and Status
LAS16-200: Firmware summit - Tianocore Progress and Status
 
Starting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 ProcessorsStarting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 Processors
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 
Open Dayligth usando SDN-NFV
Open Dayligth usando SDN-NFVOpen Dayligth usando SDN-NFV
Open Dayligth usando SDN-NFV
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1x
 
Ap 06 4_10_simek
Ap 06 4_10_simekAp 06 4_10_simek
Ap 06 4_10_simek
 
HKG15-902: Upstreaming 201
HKG15-902: Upstreaming 201HKG15-902: Upstreaming 201
HKG15-902: Upstreaming 201
 
Readme
ReadmeReadme
Readme
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMG
 
Tuning systemd for embedded
Tuning systemd for embeddedTuning systemd for embedded
Tuning systemd for embedded
 
[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...
 
BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr
 
Fn project quick installation guide
Fn project quick installation guideFn project quick installation guide
Fn project quick installation guide
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗