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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: t2 G: d8 W, r4 K. A: I
#include <linux/init.h>
: B3 F' _' ]2 F4 R#include <linux/module.h>5 t  T8 F' H/ o0 W$ d$ _
#include <linux/kernel.h>
+ B/ R* c7 g. l  y, z#include <linux/types.h>
$ ?% ]: _9 y/ `7 F! n#include <linux/gpio.h>2 E9 ?1 q6 U2 ~6 O7 v
#include <linux/leds.h>
. H8 \3 T2 y+ \#include <linux/platform_device.h>1 O0 H) P9 w0 _9 u: b

5 `% I4 h" T( T- p+ e#include <asm/mach-types.h>& y; V" _' `  Q: W+ A! N
#include <asm/mach/arch.h>
% N- g2 u1 o5 b2 G/ t+ `#include <mach/da8xx.h>
+ _- T- Q% {9 W' o7 A# e#include <mach/mux.h>9 T7 T7 ~" [! L) C0 N8 E
2 H& @0 @( u7 u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 A) E9 S& u, M) P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 l) |2 t. B$ Q; F- Y6 f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# M9 l' X. V* f* G' f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# `! H8 y7 q4 l0 j, o) }4 k! I. b9 V  q; v2 }) I2 L) t9 a
/* assign the tl som board LED-GPIOs*/
% m( r* H* N' W1 N6 }- }" |5 `static const short da850_evm_tl_user_led_pins[] = {
  o* N$ e2 g: }) _, V        /* These pins are definition at <mach/mux.h> file */
5 P  Z+ ]6 }. D* ~) W- q% r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- B7 L. h+ B9 l3 f1 A$ h$ H1 S
        -1
/ k) h. \& B2 U: ?* \};
1 h. P& l0 I; o% T/ ]" P! `& `  G# `0 m: U
static struct gpio_led da850_evm_tl_leds[] = {
/ d! X4 y1 G) }+ l, ^        {% Q) M7 a1 D# Q. k4 l) O
                .active_low = 0,
+ e( c' s4 U' Q: U9 {                .gpio = DA850_USER_LED0,
8 `. O( n) T  g" R                .name = "user_led0",
+ c& Z( v4 j0 p: ~8 I  l                .default_trigger = "default-on",
: w+ q0 Q% R- b6 b! o0 l        },
6 ]( r3 ?: N: _( ^; U        {
9 z& E8 E3 f9 F, y$ [' }1 G" |                .active_low = 0,
  R0 h, K0 k+ c4 o5 z" ^                .gpio = DA850_USER_LED1,
7 p$ ?1 s0 Z  G  i                .name = "user_led1",& ~& M6 a1 p5 i( O) g% J
                .default_trigger = "default-on",
( g+ h7 k' Q0 l% U, p6 S2 j' a        },
$ n# N: Z7 z' e        {
6 a" F& @3 W, P; `                .active_low = 0,$ ]3 G* K2 ~  L  m2 T& ~
                .gpio = DA850_USER_LED2,
( w  S, f* U1 V5 m6 L4 Y                .name = "user_led2",7 n  `4 O7 i, }) j
                .default_trigger = "default-on",
" ]6 m) U( C- X" E% l6 j        },
0 e8 Y" ]. I6 ?8 A        {7 j3 G& B: d& \- [) U+ I: E
                .active_low = 0,
, I- @1 R8 t5 w+ m" F                .gpio = DA850_USER_LED3,/ g6 l) D/ s* ^
                .name = "user_led3",. f$ F. U. Z/ e
                .default_trigger = "default-on",
* }- m  {* T+ b' W( G* h' p( |        },
- ~2 d: g' L% @) _};
6 y6 R! l- i8 \+ M
1 C* c) H& b# F/ zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! F* X1 q+ I/ Y/ g6 ^3 t5 t
        .leds = da850_evm_tl_leds,( F2 V* z; k6 _# D& m+ L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: j  B8 J! W# t( T1 N' r* Q};
! b6 I" z5 Y! y& E! N) V" J% C/ \! w8 h( C( S
static void led_dev_release(struct device *dev)! J0 L: E+ l" l7 I# l; A
{
* ]3 T$ N- p$ B* G};
' Z) b2 g/ I% t' Z- j, O) {2 }, E. p5 ?- `8 M2 |8 a: t
static struct platform_device da850_evm_tl_leds_device = {
) ^" _0 G) d2 L; g        .name                = "leds-gpio",( r- K: n; q) ]
        .id                = 1,$ S1 j; M! n2 ~, R3 L/ K5 l- r
        .dev = {
6 B( w% ^1 j. S" E- \; G                .platform_data = &da850_evm_tl_leds_pdata," N4 p1 v. q  ^  X
                .release = led_dev_release,
6 Q, N8 i0 e  j4 Y& p4 q# u& C* w* `        }$ k* p0 |- Y0 M5 Q& D- _, R; I
};5 }8 i8 _- ]# G6 @
. x& l* K6 s7 C# w4 Z8 B, E/ \# }; J
static int __init led_platform_init(void)2 |4 ]! g. q9 z$ U+ I
{/ y% W9 v% r4 c+ e# o2 J, O9 y
        int ret;
! F4 |7 S9 G0 @2 b% W#if 0
. y% Z& f3 V4 E' I+ J7 ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) q( m& P. R3 _        if (ret)1 W( I% _" S1 |- e7 g' L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- M9 J, @( b$ A& S3 u1 X" ]! x; [' {
                                "%d\n", ret);3 f' t* x  \+ I* ^; N$ i
#endif- s1 ~: {& d) R7 \+ y% w
        ret = platform_device_register(&da850_evm_tl_leds_device);. F9 t. ~/ @& I( d' t. t) C8 I7 T
        if (ret)
: ?) P8 p% w( o: m: ~* ^                pr_warning("Could not register som GPIO expander LEDS");% ~) T* [* e9 ?+ e0 J. `: X) O
        else
, E/ y  ]! L4 D/ Z" q4 p! Q                printk(KERN_INFO "LED register sucessful!\n");% A& D% N, L6 a* q8 ~( d3 C% k) V

. O1 b- t; }) a5 k$ L( t        return ret;
( Q6 U3 D% C! c- B: l}
  U  e1 b: D2 `9 H' f9 @* C3 Y9 j8 x$ a8 Y" M3 G
static void __exit led_platform_exit(void): k" M/ T8 E1 d
{
: U; R! |- f9 T6 A        platform_device_unregister(&da850_evm_tl_leds_device);
: \" P) A: ~- _  D# x  k$ P6 l/ A- a$ h4 u; m$ s
        printk(KERN_INFO "LED unregister!\n");  R5 Q5 r' S1 O3 p/ X* b
}$ X( ~' @& }; d

) Y% e1 G; z, r) c7 m5 v/ omodule_init(led_platform_init);4 z: Z6 i! Y5 C/ n  Z$ d0 H$ \
module_exit(led_platform_exit);
1 U- n$ A9 |7 p! N, U7 j. t9 Q2 w& m
MODULE_DESCRIPTION("Led platform driver");% o! S: y4 T6 W+ P! ^( U2 o
MODULE_AUTHOR("Tronlong");, g& H& n+ \+ `' \3 X$ z
MODULE_LICENSE("GPL");; F5 c  \4 S# C
  x! k! t" ~: Z" W$ m/ N# L& h8 n, o9 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-9 14:00 , Processed in 0.039285 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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