程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10055|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; U8 n7 D8 @8 E0 y, M#include <linux/init.h>
0 ]+ H. R, L- h/ S3 O* g#include <linux/module.h>
, a6 y, F; J$ C#include <linux/kernel.h>1 A6 g' _, v6 E  @! h( S7 w1 A
#include <linux/types.h>
7 I9 F; [9 p# q( m8 `* R) l: z#include <linux/gpio.h>
' x# j+ s: l5 F/ S: q' g#include <linux/leds.h>) r% i- g$ Y+ [. a8 I  d4 @
#include <linux/platform_device.h>+ [) G* d. [% i5 `- x$ x6 u8 y
$ a3 f' f2 B# ^& H* K0 x: F
#include <asm/mach-types.h>& o7 [& x8 q+ l3 J( f# {: v% p& l1 H6 q
#include <asm/mach/arch.h>
0 G1 v, G- ^  A4 u$ M7 `' C& i/ g#include <mach/da8xx.h>( B# p! a- V3 o8 u
#include <mach/mux.h>& c. J0 ?" z6 e# Q" j
* l8 j' n% A- }! ~0 N4 O) j! n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 S9 W/ X* U1 k9 ^- v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 q  ~' E5 J% n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% x  M% C. A8 A, g* h- x0 U; s) e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* a. A6 p& @# }# ^7 u; H! H
* {8 M! @! ^" x! |! q! `/* assign the tl som board LED-GPIOs*/8 b+ d, y' J& a) t4 Y
static const short da850_evm_tl_user_led_pins[] = {! f: l& _8 U" g, ?7 G
        /* These pins are definition at <mach/mux.h> file */% ~7 q9 B" F( n& l& h/ o, \( Y2 C2 |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: o7 z: I/ d0 B: m) v  Z
        -1; V( G2 n  _. w" T: S" K! t6 [
};3 o& m0 |' n( z2 C
/ c# }4 o9 I4 i  i7 p$ K, Q
static struct gpio_led da850_evm_tl_leds[] = {
' c! w# h+ [% c* X- M, P; R1 N! J        {
4 n- G: B/ r0 r/ N9 p) @& _                .active_low = 0,3 A1 |! c5 L0 t- V
                .gpio = DA850_USER_LED0,
; x0 f$ O/ t" P                .name = "user_led0",
# x/ x9 F: R% R' ~                .default_trigger = "default-on",/ h8 j1 e/ a2 i
        },
/ `  r: w0 K; g) ^        {& J: V9 u" d5 u7 |! S8 I8 T! G% S
                .active_low = 0,
$ z; _% k& |& h                .gpio = DA850_USER_LED1,0 J1 H6 Z3 e3 |5 A' @1 @7 n
                .name = "user_led1",
4 ~) ^& a" s4 n                .default_trigger = "default-on",; h5 I( c& R0 }4 ?: j5 z
        },
0 u. Z, }0 Q( U9 J  t        {
3 N7 j4 G3 }! D% |  c9 Y                .active_low = 0,
6 P" t9 u% X; v- h3 u+ q                .gpio = DA850_USER_LED2,2 D* c/ N' N4 r5 w4 E5 B
                .name = "user_led2",6 ^1 S* v2 l6 Z" y* B
                .default_trigger = "default-on",, z5 f  |+ ~# k# l! [
        },
! O- n' b$ C7 r/ A. r" a9 q! b        {  X% n' i; x. Q- a1 h
                .active_low = 0,8 ?6 t% Q0 ~3 G
                .gpio = DA850_USER_LED3,
1 X$ {' A& K* g) ~4 ~( A                .name = "user_led3",
- |7 X# ?$ U) O) `4 f  G" L                .default_trigger = "default-on",* m: k! A# i4 f) W
        },6 T& z4 X5 a; a+ M& M8 Q* K
};
* \3 m; e( p+ k' B; N
) w; b! P: i; e. o1 K; Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. [( `& {4 D+ F4 L0 ^8 n        .leds = da850_evm_tl_leds,6 N: e$ K1 U& i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 o' e% i8 S/ M% f
};
9 f* b/ U6 x: X- I: o7 ^& j1 w2 G, J% U1 c
static void led_dev_release(struct device *dev)
: ^4 I2 w! U) o4 W5 P{5 |' O9 A2 K0 p$ v
};0 I, {- f0 E- Z/ Y5 c: p7 y4 r

' G! u! Q" }4 X3 f6 l7 g: O: estatic struct platform_device da850_evm_tl_leds_device = {
5 g# i$ B' @( ?5 X8 l* d$ A        .name                = "leds-gpio",1 g( }  b8 x  c7 M) x; f6 p$ z
        .id                = 1,
( b5 V0 E1 z4 o) }5 D        .dev = {: `/ o: l+ Y$ ]: p3 R- B
                .platform_data = &da850_evm_tl_leds_pdata,
2 |( r0 I4 {" C8 C! E% Z' i                .release = led_dev_release,! }* x/ {1 P. B+ w9 T1 d7 L
        }1 ]/ h/ D6 d" q7 j0 _
};* X5 O* D5 x, u# J' C5 ~$ k) U

5 @0 s. N/ \) w. ^& s0 w1 p% Dstatic int __init led_platform_init(void)
, z# V2 Y6 H% l2 B3 g8 i* k( ~' c{
1 b( [- b+ X' V* E! @* Y/ d        int ret;/ ?. ^$ y! z3 R5 ~' q* j( Q
#if 09 v" n. R0 ^/ ^! o; q1 `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 i. P+ ]. ]% ]; J
        if (ret)
* t, T! g" b6 S! E- M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 @9 \% \. t) _- U+ l- w( {8 i3 u1 a                                "%d\n", ret);  X- T& \5 l3 p4 J2 [* P
#endif
$ s: ]' m' n2 i+ ]        ret = platform_device_register(&da850_evm_tl_leds_device);
( {: Y- s0 b2 u- s        if (ret)
  z; ]$ D* }& J" s  d0 r; m) H                pr_warning("Could not register som GPIO expander LEDS");0 v8 p: c- ?, i: [+ J' x
        else* [% w9 M+ r8 U2 e- ]
                printk(KERN_INFO "LED register sucessful!\n");
) b$ v+ ?, `  K6 K$ y( f
1 Q4 }: c9 W" E9 a6 D* T; o$ R        return ret;6 \6 r! g# V% e& ]. \5 i3 L* c1 A
}
1 G2 c4 t) X. J1 |5 G1 O4 @0 k8 A. h1 k4 P3 I7 X
static void __exit led_platform_exit(void)
! q- i" V2 `2 o/ ^- B( ~{  r9 g5 d: u. F: D1 v' i
        platform_device_unregister(&da850_evm_tl_leds_device);% t& L' _, Z$ t; l7 B7 v$ ~- w

8 |8 y- o8 u2 q0 ~        printk(KERN_INFO "LED unregister!\n");
) _# B( n7 g/ k/ K8 O% m- A}+ R+ f* [- b* E3 D

, x- x# n2 r. p- ]2 o$ S9 jmodule_init(led_platform_init);  Y. P. R% G' n
module_exit(led_platform_exit);$ V1 l8 h  J9 b) j- I+ L
- l4 r0 ^, K: L% J5 ^$ T! a
MODULE_DESCRIPTION("Led platform driver");- M( a1 ?% }, Y3 N9 `# {2 E
MODULE_AUTHOR("Tronlong");
/ [3 Q$ m- Q/ {3 `% N3 O  V7 l3 oMODULE_LICENSE("GPL");1 E4 ?6 P8 W  b% J
" p$ w' P, I  h! d8 w5 Y  y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-4 07:03 , Processed in 0.037477 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表