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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 |6 C9 ^$ V' u7 V
#include <linux/init.h>& |9 |  S* d, f. v3 L8 E
#include <linux/module.h>
! k2 H7 S1 T% v& W0 o#include <linux/kernel.h>" o2 n6 g: {3 k3 J) R
#include <linux/types.h>2 y3 K0 Z/ g* A
#include <linux/gpio.h>: ^- e( |% u( t9 n, G0 M" V
#include <linux/leds.h>
. V* T. p7 T% \0 j3 ~#include <linux/platform_device.h>0 K" L8 O1 g2 T) T. S8 \
" v" z: S4 n. _( \
#include <asm/mach-types.h>
& [3 j% I8 A& s#include <asm/mach/arch.h>
, I3 l! y$ [! i#include <mach/da8xx.h>
/ m& }7 ]5 {" T, H+ g#include <mach/mux.h>$ I" |  P, e7 `- E, K

0 e# h3 ]" b5 e' K3 ?3 [+ u- I7 @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 N, x! J8 T4 ?! E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' w8 P$ G) ?& g
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, h9 K# |  ^6 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% i% R2 U1 E. m6 P0 G7 U9 o6 V" R% G% ?( {  Q  ]
/* assign the tl som board LED-GPIOs*/2 O5 X! b7 `' I- }& b' H! V: s
static const short da850_evm_tl_user_led_pins[] = {
# d) F& t& f8 L" o) F; S0 f% }2 H        /* These pins are definition at <mach/mux.h> file */
5 k+ t8 W* H# _' d        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, Q% S3 b; i- i5 H        -1
* z( d+ c7 }, a2 P! ?/ C" I};
1 E5 _  X6 d2 C/ y: ~/ l' V& `! U
static struct gpio_led da850_evm_tl_leds[] = {
2 c3 x/ {% S+ E$ F        {1 k7 z5 u4 M  ~9 h# M# t) o; p
                .active_low = 0,
  q  ^+ f3 G6 N9 H                .gpio = DA850_USER_LED0,' e- M5 e9 l! X% C
                .name = "user_led0",4 D. z- C" T" ]: }! {2 |6 n) z
                .default_trigger = "default-on",0 X& p! g8 L, ^0 g
        },5 v5 t, G. S2 q* f, n7 P# D2 p
        {
; w. L; [' D" b" F  W: H) h                .active_low = 0,
6 B( A; t9 F0 \2 O* r                .gpio = DA850_USER_LED1,; K. V  b3 J5 {  O) u
                .name = "user_led1",
# c# d) {+ R' [                .default_trigger = "default-on",2 t: J2 U5 }+ x: |" `) ^  D
        },4 x0 m$ K( l# _
        {  D5 r" R$ J8 c) |( [
                .active_low = 0,# J6 R6 ?4 P! z; H
                .gpio = DA850_USER_LED2,
) ~) ~, i' p  f. i2 j0 U                .name = "user_led2",
2 ^5 Z$ L" d5 ~# ?; |+ P; n' r( P. y                .default_trigger = "default-on",! S3 ~# C' o1 t7 {
        },7 J$ K& k/ ^! }4 B3 w9 `$ R
        {
& o' ]& ~* J* e% w) V1 w$ F                .active_low = 0,
. v% @# R% ?5 \. b) H                .gpio = DA850_USER_LED3,
6 G5 m& ~8 L9 L& t6 l' q& e                .name = "user_led3",
, x7 Z9 u& Q% }7 @+ v, s& {2 T                .default_trigger = "default-on",- y' ~" T* @* K* U) v/ v& Y+ `
        },; c- r# g; H& I1 _; f
};
* d: ~- p3 X. a4 [/ d; g) v9 x9 D" S2 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ H6 D- p: r& `3 c# \9 ?
        .leds = da850_evm_tl_leds,9 z% C- }( }, b$ m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& F1 ?! r2 Q2 h! |3 p2 _
};, F) O' G7 U5 u7 O3 B7 m5 q

4 `: k, W1 B! [) B/ Q9 fstatic void led_dev_release(struct device *dev)
' T" L* ~; v: ~& l) f* n{& N: j4 h% }8 R5 }+ h* E
};
8 u6 v3 D) @* S5 W' l# Y: r, G: T( ~( W6 z# s
static struct platform_device da850_evm_tl_leds_device = {
7 A( m7 b( l8 B  i* k! {, P8 B        .name                = "leds-gpio",
1 D3 n7 W! e1 @3 u3 K* J5 i4 D        .id                = 1,3 o+ D9 r2 y2 n& s( i
        .dev = {0 L! T0 j0 w  |# ^
                .platform_data = &da850_evm_tl_leds_pdata,
! Q5 P2 {+ W7 n1 m' [. n! _                .release = led_dev_release," c/ N6 V, o# m. n9 d* p3 o$ p
        }$ T* p. s5 s# h* X) K/ N) n- p* _
};
; f& \! d5 `% G4 @4 W4 E( n- V7 _* z9 e3 h; s; r$ A
static int __init led_platform_init(void)4 X% k1 Z- B% X5 x% P/ [
{
5 f4 h4 p6 |$ [( x        int ret;: g/ V9 D' r7 V
#if 0/ P$ F( ]: z' X. g$ L. D. h# D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 u( u( e5 c4 J9 A5 \, w; N
        if (ret). d# M" j$ n5 _" V( q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ N( a3 W5 Y2 x
                                "%d\n", ret);
1 P5 n' I: Y- i3 y. t- f# K#endif
6 U$ g! H. t. i9 l        ret = platform_device_register(&da850_evm_tl_leds_device);8 [1 _' D$ j5 `
        if (ret)& `( t: Z' f2 u
                pr_warning("Could not register som GPIO expander LEDS");
( ~7 ?1 I# E; Z* u7 v; R) g  R        else( f' M: e; A- }$ I9 j3 e
                printk(KERN_INFO "LED register sucessful!\n");
: T! Z+ C0 |. z2 I- q% `
) K& t: m1 _! b$ {1 Q" v4 E  p        return ret;
! l* I/ A, X' E4 D1 o2 P5 N}) u8 |. n) r4 A+ V
+ A/ ^& D% r, |: p
static void __exit led_platform_exit(void)
0 c0 I# q* u* F6 N{5 f* r* }9 R8 r$ @  k
        platform_device_unregister(&da850_evm_tl_leds_device);8 H3 ]. l5 p; U; F) Q

- J' P$ x$ S: A. x, y        printk(KERN_INFO "LED unregister!\n");% h! U3 F4 h6 S8 c  [' x; \8 `
}
% J/ m+ |, n" p8 a# P! t7 Y  D
& x6 q  `6 {0 B: {' Ymodule_init(led_platform_init);
) k* Y: w9 N2 @, A8 s) Gmodule_exit(led_platform_exit);+ `; U3 K1 q. u: L- y6 t6 H8 Q
% p8 x8 k  Q+ ^% K* ]  p
MODULE_DESCRIPTION("Led platform driver");
+ ]1 K- N1 l- @4 g* v$ S5 T) f+ DMODULE_AUTHOR("Tronlong");
9 P7 [4 S# ^  d) P4 s) _MODULE_LICENSE("GPL");+ P1 y" C2 S( n) p2 f
' u) d! k& |' K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 21:43 , Processed in 0.039345 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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