程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! H, g! q. l: m% |0 x#include <linux/init.h>8 @# p0 K. _8 Y4 p, }
#include <linux/module.h>- h, T- W" x7 w$ C) U
#include <linux/kernel.h>
- x' B+ |, G. S: h% l#include <linux/types.h>2 ?, U+ D( z% p; @9 J. M# w; G$ ~
#include <linux/gpio.h>
: A% i* ]  N& z- E4 e# o#include <linux/leds.h>6 ^* s6 F# W! Y% P9 k6 l) X- s
#include <linux/platform_device.h>  u6 E' A. j! y( [, y- w* k" m
# m; a. z4 T0 H7 M% \. f1 F% |+ W0 T
#include <asm/mach-types.h>- d/ K( f/ T/ M# U
#include <asm/mach/arch.h>' C* e( d: d4 [$ a9 C3 ^
#include <mach/da8xx.h>1 E- `6 d" m- t4 o3 m+ O9 ]. k
#include <mach/mux.h>
- A& I2 _- J4 c! M' v2 l4 b: E; c- Y! u* e0 E2 Z* h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 z0 ?- y) g4 q8 @
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) a; B  H- G& Y4 x( ~% {) j# Q% x' [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 c5 r/ c. T- |5 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 W& ?. @5 S7 G
! ^) s* ~1 u& o8 _" P8 ~& Q
/* assign the tl som board LED-GPIOs*/% v6 X4 i7 B! z# t& V! q- v
static const short da850_evm_tl_user_led_pins[] = {
2 }9 t) |' ~2 g        /* These pins are definition at <mach/mux.h> file */4 t5 O( D+ N6 u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 L6 [0 R# {$ z& c) U
        -1
9 d6 e5 b9 B7 X};
  R% U" n+ }* b5 q1 U# b, [+ V8 W3 l+ V0 u: b% f4 c
static struct gpio_led da850_evm_tl_leds[] = {
2 P: M6 s. k  [0 U0 `( d        {
2 ~. [, Z$ e5 ~: c) H                .active_low = 0,  b& X7 v/ Z5 Y- M) g
                .gpio = DA850_USER_LED0,
% ^; R; f. I5 o- J2 I                .name = "user_led0",5 s/ U/ j  G6 g' o% v
                .default_trigger = "default-on",
; H$ m2 E5 S( D9 N# \' r3 Q        },
8 ~4 k) T) u" [& P        {, ]8 J3 H4 t3 H3 u* p4 \
                .active_low = 0,, ]& m* v, Z) x$ K( a& l0 E
                .gpio = DA850_USER_LED1,
0 y/ W0 a' Q1 h  j                .name = "user_led1",
1 N" K1 _& W6 Z5 Y                .default_trigger = "default-on",
& C4 \" A- ^1 q3 k: _) p" m        },
8 ?" d* s$ c3 Q        {
( F. n5 y! Y  ^                .active_low = 0,
, a9 R2 f, A6 E" p3 }                .gpio = DA850_USER_LED2,$ u/ l( d+ Q  b! L7 }* G; b
                .name = "user_led2",+ D! j% l! `+ s7 T& R
                .default_trigger = "default-on",
/ l( n. E% f# |) J% K' o        },9 v" l) R. y  C* B
        {
: P- W! ^$ f: L' i0 i                .active_low = 0,! T; V1 j( G1 P+ q
                .gpio = DA850_USER_LED3,
' g. x$ q  X1 Z! v# ]                .name = "user_led3",
1 }; K0 \! G0 I1 t                .default_trigger = "default-on",
* y% K3 x/ |# i2 P$ i" d6 u        },
; ^) n; c- d4 m};) \* q/ Z& P% q+ o( k

- N3 L  o- j" M# e5 }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 {* \8 L- M( f9 Q  ], B
        .leds = da850_evm_tl_leds,
9 q; E7 k; i  P% o( V7 u1 O3 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) [- I9 n3 n% g* T0 w
};" `+ Y  {+ n: M. ]2 j9 [2 [
/ Z5 M, h% u% D/ S* S
static void led_dev_release(struct device *dev)" T* N  k+ A$ n9 q# y: x
{
9 |) o! a0 B- H% c};: o  L( _1 `9 N0 @( ~0 Y0 P( w6 ]

, }" b  G1 H" [2 e) q" @) V7 ~static struct platform_device da850_evm_tl_leds_device = {4 F/ V9 @0 @# _4 L2 z  `7 T8 X
        .name                = "leds-gpio",
, ^* P# V* p- m4 y: `1 t        .id                = 1,; U, N) l( R; k- T8 I
        .dev = {
+ x4 |& F0 N* J$ R                .platform_data = &da850_evm_tl_leds_pdata,6 F0 a+ v9 m  T0 Y5 T; s. ]7 j! Y7 u
                .release = led_dev_release,
5 P, P/ ~! d0 a( U        }
! t% D. C. e, n/ ~  L) h! j. @};
( q( F5 s3 |0 o" Z* o
' h: ^: `/ v5 |2 z( B& ?static int __init led_platform_init(void)0 i0 V* l  H  `/ ^5 ~) ]" z: x
{
! m9 T' J' v! x- Z  o  S3 O; E        int ret;" r$ S& U1 f' B/ u
#if 06 t8 X/ Y) M9 \( p: D1 b' b6 h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 J7 r+ u* [: u- o4 m
        if (ret)
# o: ~) P8 ~. e2 S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- Q4 f; @, ^5 ?7 k0 j3 K% V                                "%d\n", ret);2 V" w3 S% h* y
#endif" O7 t, C/ x- v8 w6 e/ T: f% C0 R) l
        ret = platform_device_register(&da850_evm_tl_leds_device);& ]9 Q6 A% v" y& l5 p
        if (ret); C  {/ ~! j: l( H" O5 O+ v
                pr_warning("Could not register som GPIO expander LEDS");7 `5 `7 e' D9 d: I5 C8 y
        else3 b* I8 F8 n! ?7 |
                printk(KERN_INFO "LED register sucessful!\n");
: h: E. @! M7 k! ^0 S
9 n" p* Y: p! o8 W, i7 G        return ret;) A! L2 o# B4 K/ V& t4 ^" q
}2 C& T3 P& u& I% O9 P5 F( G" _) O
% j% J0 @; h, _) \5 [0 Q
static void __exit led_platform_exit(void)
% w/ ~0 }6 A, j1 b- c{
+ p) J" J2 P7 m& V& N$ F; ?2 \! `5 G% s        platform_device_unregister(&da850_evm_tl_leds_device);
7 x% A( |* p5 r: L9 p; @( r0 p! @4 m- w4 a/ {
        printk(KERN_INFO "LED unregister!\n");
* j* E! G9 G# v1 n* ^}% [; }- D" Y  ?, k6 g
* ]' T* I. w( s) f& w2 m
module_init(led_platform_init);& ?1 z& A) T+ a+ E" x, {
module_exit(led_platform_exit);
7 J/ b7 T( H3 d2 T  T/ N  _% q  d3 Z* s. D* t, R/ ~& p* j* p% M  n
MODULE_DESCRIPTION("Led platform driver");2 {* B( ]4 q. z& p
MODULE_AUTHOR("Tronlong");1 e7 a$ |0 X! }
MODULE_LICENSE("GPL");
6 c* O: T/ o  g4 d! i; Y1 C/ ]" B4 o! S$ w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 20:18 , Processed in 0.038340 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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