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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, T% j* i& ~" g: o8 Z
#include <linux/init.h>
; M- L- W3 K$ o  h, g! k#include <linux/module.h>, r+ G2 k* i7 z6 ]6 Z% L0 a8 Z5 C8 x
#include <linux/kernel.h>
. }! U6 C& D& l% f; ?#include <linux/types.h>: R0 F9 j) m3 X
#include <linux/gpio.h>
, |/ \( }' s; x1 y& ~5 Q: F5 u#include <linux/leds.h>9 b, @8 Q) ^  ]& s$ g5 T* V5 i' J
#include <linux/platform_device.h>9 L7 R* ], F0 _7 {8 Y+ i9 Y8 a
2 n' g/ D* v4 C$ |5 e0 X
#include <asm/mach-types.h>
- W9 s8 @$ l+ X1 ^: D) b! T#include <asm/mach/arch.h>
2 t; S; J2 J/ W; A9 f#include <mach/da8xx.h>8 w2 w$ @4 h! u1 y  L
#include <mach/mux.h>
' b' `0 u* t( p" t! i' b- Z! p' v& Q/ F
8 c9 s6 m0 Q9 U8 r#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- }! _- G6 H8 f6 x" d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  {* \) B1 P; u( ?# F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 m" k3 h5 a4 |! |1 V8 o
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 [9 n: ?1 ~/ W4 I- f
" I% b, O  @2 C1 e4 ~. d3 \6 {' l
/* assign the tl som board LED-GPIOs*/
8 Z  Z+ Z3 }2 d& E9 J3 {1 M6 Sstatic const short da850_evm_tl_user_led_pins[] = {8 y) |8 g- K( q6 G- o) c& [0 G
        /* These pins are definition at <mach/mux.h> file */
7 z8 H+ f& c. Q+ g0 o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- {* V) O' c" {        -1  j* R! Z6 j8 b! Z" o! O
};3 J- J( _. m7 g# m

: d" g8 i& i' b* O8 rstatic struct gpio_led da850_evm_tl_leds[] = {2 I6 y& P1 Z5 H9 l: B) D
        {
7 W+ n! H) g% h7 ]2 R! z" }                .active_low = 0,( O( V) s4 @5 B% Y2 n+ c( r" ^: G: z
                .gpio = DA850_USER_LED0,
$ W) C$ a  q+ \. ^                .name = "user_led0",
: s; j8 r) [0 f- ^: k3 \                .default_trigger = "default-on",8 m0 |6 u- M% K4 D" Q
        },
3 U( w9 M, C. l1 G$ `        {
6 Q. E8 M) o' p" \* u9 @: x; n                .active_low = 0,3 z% B* s) z8 E1 H% _6 u
                .gpio = DA850_USER_LED1,
2 p, W+ z* ~- h- ^+ _                .name = "user_led1",+ g7 n) A- M: x5 Q" c
                .default_trigger = "default-on",* o0 D, Z( V4 ]3 ?- H6 Z% P& k, X
        },& m6 U4 Y9 U9 h7 U: N
        {
+ v/ C* K2 t8 d) |4 H9 A1 C3 k7 D, o- P                .active_low = 0,
$ b  k' B+ \8 A. ^7 Q$ L                .gpio = DA850_USER_LED2,
. k" y. c- Q2 J' f& l/ K                .name = "user_led2",4 q# s, @7 j6 t
                .default_trigger = "default-on",
3 h2 q) F  q5 a# n$ P$ n- r# S) h        },  R# M- J7 \7 K8 U; C- p* O' p
        {
8 s, u0 ~& j) n' K                .active_low = 0,
( f. t$ B3 h  U% K* R. Z* a                .gpio = DA850_USER_LED3,
$ N$ R& D  {, P& L- ?1 {, s                .name = "user_led3",
7 I% T3 }* ~1 m- ]- P                .default_trigger = "default-on",
" D1 t5 P' {: R        },
1 k5 B/ {% P% Z! U5 U  Z+ w4 N4 O( _8 j4 w};7 {0 j! l7 I, a9 t, o/ s

: x3 c9 b( c7 E# J+ x/ Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% T0 b* J% t+ d' }2 [1 R, f        .leds = da850_evm_tl_leds,  a# K; j! N" {9 W$ S+ ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 \. q* C# k5 k: o$ c+ p% ~. s};
" m7 L3 b$ X9 c% G9 M) n, T& ~" n) R
4 r- W7 ^8 [9 O& j# p& Dstatic void led_dev_release(struct device *dev)
; a3 N3 C" |0 X3 I, H{
6 w/ {1 t. s) `};
% u9 x7 l" j2 S/ I" s; f( B& S7 L% f# @4 z; Y% m+ f
static struct platform_device da850_evm_tl_leds_device = {7 {7 Y  Q& K' l$ E! p
        .name                = "leds-gpio",3 y! h) I8 v5 w: _5 O! ?
        .id                = 1,
( O6 u% a; z& Y& \2 t9 U( ]$ B$ H        .dev = {! ]- K( D0 \6 k4 X+ a& w
                .platform_data = &da850_evm_tl_leds_pdata,! t) ]9 N1 k. p9 P" P( g. u' Y
                .release = led_dev_release,
9 A9 X. F! J% v        }9 @9 q% v; w. k# F) D
};
( Y# C* V4 w8 T( V$ Q' T- P0 n8 n' C
static int __init led_platform_init(void)
( E5 j0 n! n. B3 ~. o{! d+ T0 {% f$ e6 r# n/ X
        int ret;1 e0 @  Q5 z' J: v3 }' z
#if 0
+ w; J) U1 u5 a# k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( Y. I( I& ~1 s2 H. [        if (ret)/ w  Y2 ^9 ?8 F( z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ E  `) T5 e, R5 l
                                "%d\n", ret);) T8 K# o+ p- x$ C+ {1 s) R
#endif: B, ?3 M6 w$ m8 U7 L
        ret = platform_device_register(&da850_evm_tl_leds_device);
( f8 K( P% p. h* S9 B) x        if (ret)
& D4 v) N1 F% B: a0 ?6 `5 q% n                pr_warning("Could not register som GPIO expander LEDS");
- l% x0 c( ?% ?. @1 n; U7 N% {        else6 x% K/ e  p: @; W* m: E
                printk(KERN_INFO "LED register sucessful!\n");; F6 K- Z& h6 G/ ]5 u) W/ j" \

6 }% h! P5 X' A$ L, ]; ~  v        return ret;
, R  `- n; n9 q+ x, ?8 a% H/ l9 Z}
* I% Y( _  X; L! T8 q' }0 a: J$ K; F
static void __exit led_platform_exit(void)/ K9 B; E; h+ ]- Y- ]2 z
{1 P/ m9 ?0 V1 k0 p" p
        platform_device_unregister(&da850_evm_tl_leds_device);
9 j" T9 C& k) ]! ~2 b, p$ e
/ {: b' Q4 S* p' L        printk(KERN_INFO "LED unregister!\n");
9 p1 O/ V# f( M9 K% M& y}
+ i- M" x/ u* S9 K" V: l( x9 [6 I7 E7 A
module_init(led_platform_init);* L8 T  W7 b* i/ o
module_exit(led_platform_exit);' N: K  E9 Q/ T0 w1 P; Z6 y

# o. u2 n5 I% v, v1 V. kMODULE_DESCRIPTION("Led platform driver");$ a7 ]9 {5 D/ j% H: d
MODULE_AUTHOR("Tronlong");% s" {( Y: Q2 L  o0 Z2 ]
MODULE_LICENSE("GPL");4 b' d! D2 {  F2 Z- n. \& u
6 g) m" u: d  M' `2 @1 I& R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 05:14 , Processed in 0.038375 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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