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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 T- s) V3 e$ Y1 m#include <linux/init.h>) z& Z( f+ c& G! ]* j/ z
#include <linux/module.h>
2 q. |3 M' N4 K+ m#include <linux/kernel.h>
, @" ?9 z& ~! i' U& C#include <linux/types.h>
/ \$ S2 s# @1 R' o8 N#include <linux/gpio.h>
0 q, R' S' B: k% E' |#include <linux/leds.h>
% M5 }' z0 r7 s8 U" [& `/ G, e5 l1 B#include <linux/platform_device.h>
; n2 ^% B) {+ ^3 ~, a, _; b. m
/ m7 K" z1 ~  g  u3 x- m#include <asm/mach-types.h>
5 m! C- r& }4 G! s- c1 }2 I) a/ h* }#include <asm/mach/arch.h>
- V0 X" S" N: a* B#include <mach/da8xx.h>+ _+ Y; f3 O" s5 }! j& r, c
#include <mach/mux.h>+ @' z) P$ F% s$ [. o8 ~

6 j, c$ Q' T/ H7 W6 z5 [: B6 U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, r' k. W" p6 C) x( o5 v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- c6 q9 O7 @% ?' o3 ?. p" u  V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 U' f9 j# U4 J5 d, ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# B) T7 \6 \% T( ?# v6 L. V* M

/ }/ f8 T% V4 f/* assign the tl som board LED-GPIOs*/0 b! J' {, l" {) L& `0 {
static const short da850_evm_tl_user_led_pins[] = {
( L( ]; M$ \1 M7 G  A, l/ u/ T        /* These pins are definition at <mach/mux.h> file */
4 y( H' `4 J! T        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 `: b) I! D% u4 ~) c1 Q, O
        -1' J7 \/ V3 _* c3 P/ z3 D
};
5 D/ T* w) ~, u% v  X  Y# k+ v4 `% Q
static struct gpio_led da850_evm_tl_leds[] = {
% @6 u, O8 h. W        {
: X3 R' o- p& k" ~4 z7 T                .active_low = 0,
( }5 n! t6 s2 v0 _# p1 ^                .gpio = DA850_USER_LED0,
7 H( i' S3 V; p) B! E& Q5 h% L                .name = "user_led0",
1 N- o+ _8 u4 l8 ^2 B# s  |. M/ f                .default_trigger = "default-on",
& n5 c. K( v. ?) F        },
( h, C& V; X$ h0 T        {, P0 Y- H! T" O
                .active_low = 0,
5 ^5 R+ C6 L4 O8 h                .gpio = DA850_USER_LED1,, Q1 t0 W4 q! B" S( s" _9 E) O
                .name = "user_led1",
/ k$ ?7 u# w' T  i* {                .default_trigger = "default-on",
* _$ y- T/ \+ S& c5 _/ i6 p/ {7 ]        },6 g4 N" L$ ?: Q3 s6 N& ]
        {' s! W$ T; f2 D; _1 [2 a4 Z" c
                .active_low = 0,* P! u1 k6 L2 P( W# d( t
                .gpio = DA850_USER_LED2,
' `& ^0 e. V% o* D  m$ x: h                .name = "user_led2",0 g+ j2 ^$ }% E" a& ^. M
                .default_trigger = "default-on",
9 ^" @+ R! F: U" ~' t& w9 ^        },% e7 s2 X* R3 p' F) E
        {
$ H- H; }3 M& ?$ X                .active_low = 0,
6 l! g* T" Z# X7 r4 |& _                .gpio = DA850_USER_LED3,
* A; l) u3 F& ?8 f* ]                .name = "user_led3",
/ n$ i/ V5 Y. U$ B                .default_trigger = "default-on",9 Y  {5 W: j0 |, ~  ?5 r
        },
- s5 H! u2 O& ]/ ?, O};
. y4 b% y! K9 v- ?3 w
6 F7 t* b. Y' ^7 D4 sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 f" o, e: H* w, K
        .leds = da850_evm_tl_leds,: ]8 P8 N  l; ^( K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! k4 @, i  v. m: g: f
};
4 G) a- F3 ?1 [& i4 ~  ?8 Q. H: \% P" o5 A" d
static void led_dev_release(struct device *dev)1 Z# T& o# o- o
{
( l) b. M7 {# h9 c};
* e5 O* R: W3 X6 A. ~9 x, o" U* J7 u& X
static struct platform_device da850_evm_tl_leds_device = {" X5 ^9 M. B: ~- H4 ]; c4 ]
        .name                = "leds-gpio",
' C6 O- _% F* }$ Q1 D: h        .id                = 1,7 s. D/ ^; ^: V& [) O
        .dev = {
; [$ C2 i6 V  O9 Q0 d9 j                .platform_data = &da850_evm_tl_leds_pdata,! D4 Q8 }2 a% h, l1 Q/ f6 V+ l
                .release = led_dev_release,/ X- A: @. a3 a  H" ?$ S
        }& I3 J8 |( U# O4 H- `
};3 M, F% ]  C' M* |$ h

7 \0 l+ Y5 s, H- J" w7 jstatic int __init led_platform_init(void)
, y4 s6 z+ ~! _& ]6 j( g/ Q; ~{! S" `: c3 I% T7 K7 i7 S/ ~
        int ret;; L, i! H# b- S" L5 a) m
#if 0/ K4 m( S# s0 e7 i4 G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 @) F" V  P+ f% o- ]/ @5 P1 M        if (ret), \/ N, K. N3 c8 ~$ o1 {4 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 x$ l3 h4 }. V1 b* ]! q
                                "%d\n", ret);% V  Z! A! |8 `; B
#endif
; Y4 M/ D3 j" a        ret = platform_device_register(&da850_evm_tl_leds_device);8 f7 q3 R- t6 E/ e) ^% ~* z
        if (ret)" X7 q3 X. W) y) ~" s9 w, E
                pr_warning("Could not register som GPIO expander LEDS");
; n! s" m* O' X" q% m( ?        else
3 D! I" o% i, _2 l                printk(KERN_INFO "LED register sucessful!\n");# `- L* |( g* ^9 m# u* F
/ ^3 z8 r* Q  ^0 V+ u
        return ret;2 i1 X3 `5 r# v6 x3 a
}5 f, m( f: i) W
  y; _  _$ U, W% `& x% W" a5 q
static void __exit led_platform_exit(void)
5 q" F) f6 n$ d, N0 D{
3 q! ^" V6 r# O        platform_device_unregister(&da850_evm_tl_leds_device);+ @0 v1 G# ?. _

+ t& p) r/ \9 [' B. }4 R        printk(KERN_INFO "LED unregister!\n");  n/ w5 F  \, F9 [& I9 A: C
}/ F: X. E* @  m0 }5 ~

) ]/ A" O  g6 f# ]; N( Kmodule_init(led_platform_init);
, [. e- H: G# i" C0 ~module_exit(led_platform_exit);3 A2 u. b8 F" n- g
( {, p8 {+ J: W1 d9 N* ~
MODULE_DESCRIPTION("Led platform driver");
* k$ F- i/ C1 z" z6 W1 b8 GMODULE_AUTHOR("Tronlong");
4 C7 S5 o& h! K% |) G; UMODULE_LICENSE("GPL");
( W( c# u. x: o0 F, n, z
- L8 N/ L, n# y; l- }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-9 21:17 , Processed in 0.044159 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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